2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【软件工程导论】软件工程导论笔记

【软件工程导论】软件工程导论笔记

时间:2021-12-05 09:16:22

相关推荐

【软件工程导论】软件工程导论笔记

文章目录

OverviewHistory of software technologyThe raise of Software EngineeringThe nature of softwarewhat is softwareincludeTradition programingOO ProgramingComponent orient ProgramingModern viewThe nature of softwareDevelopmentDeterioratecustom builtComplexCloud ComputationConcept of software engineeringSoft ware crisis & what happensSoftware ProcessWhy we need software processesSoftware lifecycleUmbrella/Framework activitiesSoftware process structureProcess patternsStage patterns2. Task patternsPhase patternCMMI(Capability Maturity Model Integration)CMMI stagesProcess Modelsprescriptive process modelThe waterfall model& the V modelThe waterfall modelFeaturesAdvantageDisadvantageThe V modelThe Evolutionary modelprototypingWhyPrototypeFeatureCatagoryadvantagedisadvantageThe spiraladvantagedisadvantagediagramConcurrentdiagramfeaturesfeaturesThe increment models1. definitiondiagramfeaturesadvantage(适用于)Other process ModelscatagoryThe unified ProcessprocessdiagramAgile developmentManifesto for agile software developmentvaluesAgility and the cost of changeAn agile processAgility priciplesExtreme programming/Scrum?KanbamExtreme programmingmain activitiesdiagramExtreme planningExtreme Designextreme codingextreme testingScrumdistinguishing featuresdiagram团队模型Scrum MasterProduct Owner团队Scrum 三种工件产品BacklogSprint Backlog产品增量Scrum 过程模型 (5个活动+1个合约)kanbamcategoryHuman Aspects of software engineeringUnderstanding requirementsSystem engineeringRequirements engineeringProcessInceptionDefinitionprocessElicitationdefinitionprinicipleThe goalwork productsElaborationNegotiationdefinitionprocessSpecificationdefinitionrelationcontentValidationdefinitionprocessRequirement managementrequiremetn monitionNon-functional requirementsDiagramsRequirement modelingDomain Analysis目标Scenario-based modelinguse caseactivity diagram even swimming lane diagramsClass-based modelingContentnouns and verbsMenifestation of analysis classespotentcial classesattriburtes and operationattributeoperationsourcecatagoryClass Responsibility Collaborator(CRC) modelsusagemodelingexampleBehavioral modelingDesign conceptsdesign and qaualitygoalquality guide linedesign principleFundamental conceptdesign modelOO Conceptsdesign classesinheritanceMessagesPolumorphismDesign methodsArchitecture DesignWhat is architectureArchitecture styleEncompasscatagoryArchitecture designAgility and architectureComponent level designWhat is a componentBasic design pricinpleThe open-closed principleThe Liskov subsititution principleDependency inversion principleThe interface segregation principleCohesion and CouplingCohesiondefinitionlevel of cohesionCouplingdefinitionlevel of couplingComponent-based software engineeringprincipleactivityUser interface designGolden rules for UI designUser intgerface design processinterface analysisDesign evaluation cycleSoftware qualityWhat is qualityMcCall’s triangle of qualityThe cost of qualityAchieving software qualityachievingassuranceTesting strategy and techniquesTesting conceptsV model and V&Vthe v modelthe v&v modelTesting Strategiesdiagramstrategyconventional softwarefor oo softwaretime lineTesting techniquestesting stepsdriverprovidetypical behaviorstubprovidetypical behaviorbottom-up strategysandwich testingregression testingsmoke testingOO testing strategySecurity engineering & SCMWhy security engineeringSCM conceptsBaselinesdefinitionSCISCM processdiagramProject managemetn concepts4PW5HHW^5HHW5HHProcess and project metricsWhy do we measureProcess measurement and metricsmeasurementprocess metricsProject metricstypical of metricsProject estimation & SchedulingScopedefinitiondescribemian techniquesWork Breakdown Structure (WBS)definitionint provides the basis forLine Of Code(LOC)advantagedisadvantageFunction Point (FP)advantagedisadvantageConstuctive Cost Modeling (COCOMO) estimationScheduling stepsTask networkGantt chartsMilestoneRisk analysisProject riskcatagoryReactive Risk ManagementProacctive risk management

Overview

History of software technology

The raise of Software Engineering

The nature of software

what is software

include

programdocumentdata structure

Tradition programing

software = algorithm + data structure

OO Programing

software = object + message

Component orient Programing

Software = component + architecture

Modern view

instruction that when executed provide desired feature function and performancedata structure that enable programs manipulate informationdocumentation that describe the operation and use of the programs

The nature of software

Development

Deteriorate

different failure rate curve

custom built

Complex

Cloud Computation

Cloud computing provides distribute data storage and processing resource to networked computing devicecompeting resources reside outside the cloud and have access to a variety of resources inside the cloudCloud computing require developing an architecture containgin both frontednd and backend inside the cloudfronteend service include the client devicesand application software to allow accessbackend servide include servers, data storage, and server-resident applicationcloud architecture can be segmetnted to restrict access to private data

Concept of software engineering

Soft ware crisis & what happens

Software Process

A process degines who is doing what, when, and how to reach a certain goal.

Why we need software processes

Software lifecycle

Umbrella/Framework activities

software project tracking and controlrisk managementsoftware quality assurancetechnicla rebiewmeasurementsoftware configeration managemetnreusability managementwork product preparation and production

Software process structure

Process patterns

describes a process-related problem that is encounted during software engineering workidetifying the environment in which the problem has been encounteredsuggests one or more proven solutions to the problems

Stage patterns

defines a problem associated with a frame work activity for the process

2. Task patterns

define a problem associating with a software engineering action or work task relevant to successful software practice

Phase pattern

define the sequenceof framework activities that occure with the process,even hte overall flow is iterative in nature

CMMI(Capability Maturity Model Integration)

A proposed by the SEI(Software Engineering Institution)CMMI is a collection of best practices that meet the needs of organization in different areas of intrests

CMMI stages

InitialManagementDefinedQuantitatively managedOptimized

Process Models

process frameworkframework activity work taskwork productsmilestones and deliveriablesQA checkpoints umbrella activities

prescriptive process model

The waterfall model& the V model

The waterfall model

Features
从上一项活动中接受该项活动的工作成果,作为输入利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,作为输出传给下一项对该项活动实施的工作进行评审,若其工作得到确认则继续进行下一项活动
Advantage
强调开发的阶段性强调早起计划及需求调查强调产品测试
Disadvantage
瀑布模型过于依赖早起进行的唯一一次需求调查,不能适应需求的变化瀑布模型是单一流程,开发中的经验教训不能反馈应用与本产品的过程

The V model

The Evolutionary model

prototyping

Why
business requirement often changetight market deadline, only allow a limited versiononly core requirement are defined
Prototype

软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、反映最后软件特征的系统

Feature
是一个可实际运行的系统没有固定的生存期,可能被扔掉或作为最终产品的一部分从需求分析到最终产品都可作为原型,即可为不同目标作原型必须是快速、廉价他是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可
Catagory
探索性:其目的是要弄清系统的要求,确定所希望的特性,并探讨多种方案的可行性实验型:其目的是验证方案或算法的合理性,它是在大规模开发和实现前,用于考核方案是否合适,规格说明是否可靠演化性其目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统、
advantage
一开始就能弄清楚所有产品的需求,或者至少可以帮助应导出高质量的产品需求。可在项目早期就获取项目的相关数据,尽早进行项目的风险管理和配置管理心理上:开发人员早日见到产品的雏形,是一种鼓舞使用户在新的一批功能开发测试后,立即参加验证,以提供非常有价值的反馈可使销售工作可能提前进行,因为可以在产品开发的中后期取得包含了主要功能的产品原型向客户展示和使用
disadvantage
若缺乏管理的话,这个生命周期模型很可能退化成”试-错-改“的循环模式心理上,可能产生一种影响尽最大努力的想法,认为可能不能完成全部功能,但还是造出了有部分功能的产品。如果不加控制地让用户接触开发中尚未测试稳定的功能,很可能对开发人和用户造成负面影响

The spiral

Using the spiral model, software is developed in a series of evolutionary releaes the early release might be a paper model or a protortypethe latter release can be more complete version unlike other model that end when software is delivered, the spiral model can be adapted to apply throughout the life of the software在螺旋模型中,维护只是螺旋模型的另一个周期,在维护和开发之间并没有本质上的区别,从而解决做太多测试和未做足够测试所带来的风险
advantage
强调严格的全过程风险管理强调各阶段开发质量提供机会检讨项目是否有价值继续下去
disadvantage
必须映入非常严格的风险识别,风险分析和风险控制对风险管理技能水平高要求需要大量的人员、资金、时间投入
diagram

Concurrent

diagram
features
Concurrent development model (Concurrent Engineering)It defines a series of events that will trigger transitions from state to state for each of the software engineering activities, actions, or tasks.

features

modern computer software is characterized by continual change, by very tight timelines, and by an emphatic need for customer/use satisfactionthe intend of evolutionary models is to develop high-quality software in an interactive or incremental mannerit’s possible to use an evolutionary process to emphasis flexibility, extensibility, and speed of development

The increment models

1. definition

增量模型又称产品改进模型从给定需求开始,通过构造一系列中间版本来实施开发活动,依次类推,直到系统完成。每一个中间版本都是需求分析、设计、编码和测试的过程。某些中间版本的开发可以并行进行。

diagram

features

融合了线性顺序模型的基本成分和原型的迭代特征。是随着日程时间的进展而交错的线性序列。与原型不一样的地方是强调每个增量均发布一个可操作产品。最典型的应用是同一个产品的不同项目(合同、用户)版本

advantage(适用于)

需求经常变化的软件开发市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术

Other process Models

catagory

Component based development—the process to apply when reuse is a development objectiveFormal methods—emphasizes the mathematical specification of requirementsAOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspectsThe Unified Process (UP)

The unified Process

process

初始阶段(Inception)为系统建立业务案例并确定项目的边界。细化阶段(Elaboration)分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。构造阶段(Construction)所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。交付阶段(Transition)确保软件对最终用户是可用的。

diagram

Agile development

Manifesto for agile software development

values

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

Agility and the cost of change

An agile process

Is driven by customer descriptions of what is required (scenarios)Recognizes that plans are short-livedDevelops software iteratively with a heavy emphasis on construction activitiesDelivers multiple ‘software increments’Adapts as changes occur

Agility priciples

我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。业务人员和开发人员必须相互合作,项目中的每一天都不例外。激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。可工作的软件是进度的首要度量标准。敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。以简洁为本,它是极力减少不必要工作量的艺术。最好的架构、需求和设计出自自组织团队。团队定期地反思如何能提高成效,并依此调整自身的举止表现。

Extreme programming/Scrum?Kanbam

Extreme programming

main activities

XP planningXP designXP codingXP testing

diagram

Extreme planning

Begins with the creation of user storiesAgile team assesses each story and assigns a costStories are grouped to for a deliverable incrementA commitment is made on delivery dateAfter the first increment project velocity (速度) is used to help define subsequent delivery dates for other increments

Extreme Design

Follows the KIS principle(Keep It Simple)Encourage the use of CRC cardsFor difficult design problems, suggests the creation of spike solutions — a design prototypeEncourages refactoring — an iterative refinement of the internal program design

extreme coding

Recommends the construction of a unit test for a story before coding commences (测试驱动编程)Encourages pair programming(结对编程)

extreme testing

All unit tests are executed daily(强调Daily Building,冒烟测试)Acceptance tests are defined by the customer and executed to assess customer visible functionality(强调验收测试,回归测试)

Scrum

distinguishing features

Development work is partitioned into “packets”Testing and documentation are on-going as the product is constructedWork occurs in “sprints” and is derived from a “backlog” of existing requirementsMeetings are very short and sometimes conducted without chairs“demos” are delivered to the customer with the time-box allocated

diagram

团队模型

Scrum Master
保证Scrum团队可以遵守;Scrum的价值,实践和规范帮助Scrum团队和组织采用Scrum模式进行项目流程组织;指导并带领团队变得更加高效,实现更高质量;保护团队不要受到外界因素的干扰;保证各个不同角色之间的良好写作,消除障碍;帮助PO更好地利用团队的能力;不要管理团队。
Product Owner
PO 是一个人并只能由一个人来担任;负责管理产品待办事项表(Product Backlog)并保证其对于客户和团队保持透明度;对产品代办事项表进行优先级排序;与团队一起来进行工作量估算;对于项目的成功负责并保证投资回报率 (ROI)。
团队
最佳团队大小:5-9 人;多功能团队:程序员,测试人员,设计师,数据库管理员和架构师;保证团队成员全职参与开发自我管理,没有头衔之分,不组建子团队;成员更替只能在迭代之间进行,最佳方式是在发布之间进行。

Scrum 三种工件

产品Backlog
产品需求变动的唯一来源动态,永不完整, 持续更新有序,排序越高越清晰具体; 排序越低, 细节越少每个产品一个, 与团队数量无关产品负责人负责管理其内容, 可用性和排序
Sprint Backlog
包含产品待办事项列表中当前 Sprint 的子集包含完成 Sprint 目标所需的任务细节开发团队可视情况增加或移除任务
产品增量
当前 Sprint 完成的产品待办事项列表, 以及之前所产生增量的总和必须达到"完成"的标准无论是否发布, 必须是可用的

Scrum 过程模型 (5个活动+1个合约)

kanbam

基于产品研发等不同视角的价值流,看板可以划分为多层视图,更好的管理产品的价值的流动。

category

产品级看板:基于产品视角看到的研发价值流,这是每个项目开展精益看板时,首先要分析和建立的看板系统。管理产品特性的流动。团队级看板:基于设计团队、开发团队、SIT测试团队的价值流视图,这是团队开展和改进的视图。精细化管理需求在设计阶段、Story开发、需求测试的流动。

Human Aspects of software engineering

no important

Understanding requirements

System engineering

通过处理信息来完成某些预定义目标而组织在一起的元素的组合对于用户而言有意义的事可以达到预期目标的系统而不是单一的软件组成基于计算机的系统有:软件、硬件、人员、数据库、文档、规程

Requirements engineering

Process

Inception

Definition

A set of question that establish

basic understanding of problemthe people who want a solutionthe nature of the solution that is designthe effectness of preliminary communication and collaboration between the customer and the developer

process
identify stakeholder

recognize multiple point of view

work toward collaboraton

the first question

who is behind tehe request for this workwho will use the solutiohnwhat will be the economic benefit of successful solutionis there any sorce for the solutrion tath you need

Elicitation

definition

elicit requirement from all skaeholder

priniciple
meeting are coducted and attended by both software engineering and customerrules for preparation and participatation are establishedan agenda is suggesteda facilitator controlsthe meetinga “definition mechanism” (can be work sheets, flip charts, or wall stckers or an electronic bulletin board,caht room or virtual forum) is used
The goal
to identify the problempropose elements of the solutionnegotiate different approachesapecify a preliminaryu set of solution requirement
work products
a statement of need adn feasibilitya bounded statement of scope for the system or the producta list of customers, users, adn other stakeholders who participated in requirement elicitationa desvription of the system’s technical environmenta list of requirement adn the domain constains taht apply to eachan prototype developed to better define requirements

Elaboration

creat a analysis model that identifies data, function and behavioral requirement

Negotiation

definition

agree on a feliverable system that is realistic for developer and customer

process
identify the key stakeholder: theser are the prople who will be involved in the negotiationdetermine each of the stakeholders “win condition”: win condition are not always obviousnegotiate: work toward a set of requirements taht lead to “win-win”

Specification

definition

can be any one of the followering

a written documenta set of modelsa formal mathematicala collection of user scenariosa prototype

relation
content
引言:陈述目标软件,在基于计算机的系统语境内进行描述信息描述:给出软件必须解决问题的详细描述,记录信息内容和关系、流、结构行为描述:描述作为外部事件和内部产生的控制特征的软件操作检验标准:描述检验系统成功的标志。即对系统进行什么样的测试,测到什么样的结果,就表示系统已经成功实现了,他是“确认测试”的基础。参考书目:包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、厂商文献及标准附录:包含了规约的补充信息,表格数据,算法的详细描述,图表以及其他材料

Validation

definition

a review mechanism that look for

errors in content or interpretationareas where clarification may be requiredmissing informationinconsistenciesConflicting or unrealistic requirement

process
is each requirement sonsistent with the overall objective for the system/producthave all requiremtnt been specified at the proper level of abstraction? that is , do some requirements provide a level technical detail taht is inappropriate at this stageis the requiremetn really necessary or does it represent an add-on feature that may not be essential to the objective of teh systemis each requirement bounded and unambiguousdoes each requirement have attibution: taht is, is a source noted for each requirementdo any requirement conflict with other requirementis wach requirement achieveable in the technical rnvironment that will house the system or productis each requirement testable, once implementeddoes the requirements model proprely reflect the information, funciton and behavior of the system to be builthas the requirements model been “partitioned” in a way that exposes progressively more detailed information about the systemhave requirement patterns been used to simmplify teh requiremens model. habe all patterns been properly balidated: are all patterns consistent withe customer requirement

Requirement management

requiremetn monition
distributed debugged: uncover errors and determines their causerun-time verfication: determines whether software meets user goalruntime validation: assesses whether evolving software meets their goalbusiness activity monitoring: evaluate wheterh a system satisfies goalsevolution and co-design: provide information to stakeholders as the system evolves

Non-functional requirements

Diagrams

Requirement modeling

Domain Analysis

目标

描述客户需要什么为软件设计奠定基础定义在软件完成后可以被确认的一组需求

Scenario-based modeling

use case

scenario that describe a “thread of usage” for a systemactors represent roles perple or devices play as teh system functionusers can play a number of different roles for a given scenario

activity diagram even swimming lane diagrams

Class-based modeling

Content

nouns and verbs

classes are determined by noun or nouns phrase

Menifestation of analysis classes

external entitiesthingsoccurences or eventsrolesorganization unitsplacesstructures

potentcial classes

retaineed informationneeded serbicesmultiple attriburecommon attributecommon operationsessential requirements

attriburtes and operation

attribute

attribure describe a class that has been selected for inclusion in the analysis model

operation

source
do a grammatical parse of a processing narrative and look at the verbs
catagory
manipulate dataperform a computationinquire about the state of an objectmonitor an object for the occurence of controlling event

Class Responsibility Collaborator(CRC) models

usage

provides a simple means for identifying and organizing the classes that are relevant to system or production requirements

modeling

A CRC model is really a collection of standard index cards that represent classesthe cards are divided into three sections: class name, responsibility, collaborator

example

Behavioral modeling

mainly include state diagram and sequence diagram

Design concepts

design and qauality

goal

teh design must implement all of the explicit requirementthe design mustt be readable, understandable guidethe design should provide a complete picture of software

quality guide line

design should exhibit an architecture that has been created using recognizable architectureal styles or patternsis composed of components that exhibit good design characteristicscan be implement in an evolutionary fashion A desin should be modulara design should contain distinct representationa design should lead to data structure that are appropriate for the classes to be implemented and are drawn from recognizable data patternsa design should lead to components that exhibit independent functional characteristicsa design should lead to interfaces that reduce the complexity of connections between components and with the external ecvironmenta design should be derived using a repeatable method that is derived by information obrtained during software requirements analysisa design should be represented usingt a notation that effectively communicated its meaning

design principle

lazy

Fundamental concept

abstraction: data procedure, controlarchitecture: the overall structure of the softwarepatterns: convey the essence of a proven design solutionseparation of concerns: any complex problem can be more easilymodularity: compartmentalization of data and functionhiding: controlled interfacesfunctional independence: single minded function and low couplingrefinement: elaboration of detail for all abstractionaspects: a mechanism for understanding how global requirements affect designrefactoring: a reorganization technique that simplifies the desinOO desing concepts:desing classes: provide design detail that will enable analysis classes to be implemented

design model

OO Concepts

design classes

entity classes : refined from analysis classboundary classes: developed during desing to create the interfacecontroller classes:are desing to manage the creation or update of entity objectsthe instantiation of boundary objects as they obtain information from entity objectscomplex communication between set of objectsvalidation of data communicated between objects or between the user adn teh appplication

inheritance

all responsibilities of a superclass is immediately inherited by all subclasses

Messages

stimulate some behavior to occur in the receiving object

Polumorphism

a characteristic that greatly reduces the effort required to extend the design

Design methods

Architecture Design

What is architecture

the software architecrure of a program or comprting system is the sruucture or structures of teh system, which comprise the software components, teh externally visible properties of those components, and the relationships among them

Architecture style

Encompass

a set of components that perform a funciton required by a ssytema set of connector that enablecommunication coordination and cooperation among componentsconstraints that define how components can be integrated to form the systemsemantic models that enable a desiner to understand teh overall properties of a system by analyzing the known properties of its constituent parts

catagory

data-centered ar5chitecturesdata flow architecturecall and return architectureobject oriented architecturelayered architecture

Architecture design

the software myst be placed into contexta set of architectureal archetypes should be identifiedthe designer specifies the structure of the system by defining and refining software

Agility and architecture

to avoid rework, user stories are used to create and evolve an architecrural model before codinghubrid models which alow sogtware arhchitects contributing users stories to the evolving storyboardwell run agil projects include delivery of work products during each springreview code emerging from the sprint can be a useful form of architecrural review

Component level design

What is a component

OO view: a set of collaborating classesprocess logic, the internal data structure and an interface

Basic design pricinple

The open-closed principle

open for extension and clossed for modification

The Liskov subsititution principle

subclasses should be substitudable for their base classes

Dependency inversion principle

depend on abastaction rather than concretion

The interface segregation principle

many client-specific interfaces are better than one general purpose interface

Cohesion and Coupling

Cohesion

definition

cohesion implies that a component or class encapsulate only attribures and operations that are closely related to one another and to the class or component itself

level of cohesion
functionallayercommunicationalsequentialproceduraltemporalutility

Coupling

definition

a qualitative measure of the degree to which classes are conneted to one another

level of coupling
contentcommoncontrolstampdataroutine calltype useinclusion or importexternal

Component-based software engineering

principle

a library of components must be avaialbecomponents should hava a consistent structure

activity

component qualificationcomponent adaptationcomponent compositioncomponoent update

User interface design

Golden rules for UI design

User intgerface design process

interface analysis

Design evaluation cycle

Software quality

What is quality

an effective sotwware process applie in a manner that cteates a userful product that provides measurable valuse for those who produce it and those who use it

McCall’s triangle of quality

The cost of quality

Achieving software quality

achieving

sotware quality is the result of good project management and solid engineering practiceto build high quality software you must understand the proble to be solved and be capable of creating a quality design the conforms to the problem requirementeliminating architectural flaws during desing can improve quality

assurance

project management: project plan includes explicit techniques for quality and change managementquality control: series of inspections, reviews, and tests used to ensure conformance fo a work product ro its specificationquality assurance: consists of the auditing and reporting procedures used to provide management with data needed to make proactive decisions

Testing strategy and techniques

Testing concepts

verification: refer to the set of tasks that ensure thath software correctly implements a specific functionvalidation: refer to a different set fof tasks that ensure that the software that has been built is traceable to customer reuqirement

V model and V&V

the v model

the v&v model

Testing Strategies

diagram

strategy

conventional software

teh module is our initial focusintegration of modules follows

for oo software

our focus when “testing in small” changes form an individual module to an OO class that encompass attributes and operations and implies commnunication and collaboration

time line

Testing techniques

testing steps

before developing a test, we should identifu the foals of the testdecide how to carry out a relevant test. We have to decide which test is teh most suitable and what sort of test items need to be useddevelop teh test casedetermine the expected results of the testexecute the test casesccompare teh test results to the expected result

driver

provide

setting input parameters, and the environmentexecuting the unitreading the output parameters

typical behavior

suply a constant input or a random inputsupply a ‘canned’ inputrecord interim results and traces

stub

provide

the unit under test may depend on another component that may not have been completed yet or would introduce undesirable into the test. Stub simulate part of the program called by the unit

typical behavior

exit immediately

return a constant ouput or a random output

return a value from the user

print ‘module x entered’

bottom-up strategy

sandwich testing

regression testing

re-execution of some subset fo tests that have already been conducted to ensure that changes have not propagated unintended side effects

smoke testing

a common aproach for creating “daily builds” for product software

OO testing strategy

operation within the class are testedthe state behaviro of teh calss is examinedthread-base testinguse-based testingcluster testing

Security engineering & SCM

Why security engineering

security is a perquisite to system integrity, availability, reliablity and safetysecurity provides teh mechanism that enable a system to protect its assets from attackassets are system resources that have value to its stakeholdersattacks take advatage of bulnerability that allow unauthorized system accessit is different to make a system more secure by responding to buging reports, security must be designed in from the beginning testing appropriate

SCM concepts

Baselines

definition

a specification or product that has been formaly reviewed and agreed upon, that thereafter serves as teh vbasis for futher development, and that can be changed only through formal change control procedures

SCI

SCM process

diagram

Project managemetn concepts

4P

people: the most important element of a sucessful projectproduct: teh software to be beiltprocess:teh set fo framework activities and software engineering tasks to get tehjob doneproject: all work required to make teh product a reality

W5HHW^5HHW5HH

why is teh system being developedwhat will be donewhen will it be accomplishedwho is responsiblewhere are they organizationlly locatedhow will teh job be done technically and manageriallyhow much of each resurce will be needed

Process and project metrics

Why do we measure

assess teh status of an ongoing projecttrack potential risksuncober problem areas beform they go critialadjust work flow or tasksevaluate the project team’s ability to control quality of software work products

Process measurement and metrics

measurement

outcome

process metrics

quality relatedproductivity-relatedstatistical SQA datadefect remocal efficiencyreuse data

Project metrics

input:measures of teh resources required to do the workoutput: meawsures of teh deliverable or work prodducts ctreated during teh softwre engineering proceessresults: measures that inducated teh effectiveness of the deliverable

typical of metrics

error per unitdefect per unitpages of document per uniterrors per person-montherrors per review person-month

Project estimation & Scheduling

Scope

definition

scopes refer to all teh work involved in creating teh products of the project and teh processes used to cteated them

describe

the software socpe describes

the funcitons adn features that are to be delivered to end-usersthe data that are intput adn outputthe “content” that is presented to users as a consequence of using teh softwareteh performance, constrains, interface, and reliablity that bound the system

mian techniques

a narrative description of software socpe is developed ager commnucation with all stakeholdersA set of use-case is developed by end-user

Work Breakdown Structure (WBS)

definition

a work breakdown structure is a deliverabl-oriented grouping of the work involved im a project that defines teh total scope of the project

int provides the basis for

planning and managing project schedules, costs, and changesrisk analysisorganizaitonal structuremeasurement

Line Of Code(LOC)

advantage

simple to measureeasy to automate

disadvantage

only defined for code, not teh designbad desing may cause excessive LOCLanguage dependentDoes not account for functionality or complexity

Function Point (FP)

advantage

usable in teh earliest requirements phasesindependent of programming language, product desing, or development styleuser’s view rather than miplementation viewcan be used to measure thenon-coding activitiesThere exists a large body of historical dataa well documented method

disadvantage

cannot directly count an existing product’s FP contentHard to automateFP do not reflect language, desing, or style differencesFP are desinged for estimating commercial data processing applicationssubjective counting

Constuctive Cost Modeling (COCOMO) estimation

use experience to estimate

Scheduling steps

defining task setssequencing activitiesdrawing project network diagramscrutical path analysisusing Gantt chats for schedulingshcedule tracking

Task network

Gantt charts

Milestone

you know what is milstome right?

Risk analysis

Project risk

catagory

Project risktechnical riskbusiness risk marketing riskstrtegic riskmanagement riskbudget risk

Reactive Risk Management

mitigation: plan for additional resources in anticipation of fire fightingfix on failure: resource are found and applied when the risk strikescrisis management: failure does not respond to applied resources and project is in jeopardy

Proacctive risk management

formal risk analyssi is performedorganization correct the root cause of risk TQM concepts and statistical SQAexamining risk sources that lie beyond the bounds of the softwaredeveloping the skill to manage change

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。