Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | jeremy-mcclain |
View: | 29 times |
Download: | 0 times |
Definition and properties
A system is a collection of interrelated A system is a collection of interrelated components that work together to achieve components that work together to achieve some objectivesome objective
Properties :Properties : Complex interrelationship among the Complex interrelationship among the
partsparts ReliabilityReliability UsabilityUsability
System & its environment
We create a system to modify/adapt to the We create a system to modify/adapt to the environmentenvironment
There are internal & external relationships There are internal & external relationships between the system and it’s environmentbetween the system and it’s environment
Procurement
To buyTo buy To design from scratchTo design from scratch
Large systems : mix of bought and designed Large systems : mix of bought and designed systemssystems
Others : really start from scratch using a Others : really start from scratch using a development tool.development tool.
Software Engineering
““The profession concerned with creating and The profession concerned with creating and maintaining software applications by applying maintaining software applications by applying computer science, project management, domain computer science, project management, domain knowledge and other skills and technologies”knowledge and other skills and technologies”
““SE technologies and practices (databases, SE technologies and practices (databases, libraries, patterns, platforms, processes, etc.) help libraries, patterns, platforms, processes, etc.) help developers by improving productivity and quality”developers by improving productivity and quality”
SE – Pressman
““An outgrowth of hardware and systems An outgrowth of hardware and systems engineering. It encompasses a set of three engineering. It encompasses a set of three
key elements – methods, tools, and key elements – methods, tools, and procedures -- that enable the manager to procedures -- that enable the manager to
control the process of software development control the process of software development and provide the practitioner with a and provide the practitioner with a
foundation for building high-quality foundation for building high-quality software in a productive manner.”software in a productive manner.”
The classic life cycle
Systems Engineering (requirements Systems Engineering (requirements gathering)gathering)
AnalysisAnalysis DesignDesign CodeCode TestingTesting MaintenanceMaintenance
The system engineering process
Requirements definitionRequirements definition Systems DesignSystems Design Sub-system developmentSub-system development System IntegrationSystem Integration System installationSystem installation System evolutionSystem evolution System decommissioningSystem decommissioning
System requirements definition
DetermineDetermine Coarse grain functional requirements Coarse grain functional requirements
(what are the basic functions of the (what are the basic functions of the system)system)
System properties (availability, System properties (availability, performance, safety, security)performance, safety, security)
What it should not exhibitWhat it should not exhibit
System design
Partition requirementsPartition requirements Identify sub-systemsIdentify sub-systems assign requirements to sub-systemsassign requirements to sub-systems Specify sub-system functionalitySpecify sub-system functionality Define sub-system interfacesDefine sub-system interfaces
Sub-system developmemt
Development of the sub-systemsDevelopment of the sub-systems ProgrammingProgramming
System integration
Putting together independently development Putting together independently development sub-systems into one coherent systemsub-systems into one coherent system
System Installation
ProblemsProblems Different environment in which the Different environment in which the
system is to be installed (OS, system is to be installed (OS, development software version)development software version)
Human resistanceHuman resistance Co-existence with an old systemCo-existence with an old system Physical installation problemsPhysical installation problems
Final stages
System operationSystem operation training, changing the normal work processtraining, changing the normal work process
System evolutionSystem evolution feedback and changes in the environmentfeedback and changes in the environment change is costlychange is costly
System decommissioningSystem decommissioning Putting the system out of servicePutting the system out of service
Definition
Software Lifecycle refers to the progression Software Lifecycle refers to the progression of the software system from development of the software system from development
through maintenance and eventually through maintenance and eventually replacement.replacement.
Involves the activities in the production of a Involves the activities in the production of a software system.software system.
Phases : In General Requirements analysis and specificationRequirements analysis and specification DesignDesign
Preliminary DesignPreliminary Design Detailed DesignDetailed Design
ImplementationImplementation TestingTesting
Unit testingUnit testing Integration TestingIntegration Testing System TestingSystem Testing
Installation and Acceptance TestingInstallation and Acceptance Testing MaintenanceMaintenance
Examples of Software Lifecycles
Waterfall modelWaterfall model Modified Waterfall ModelModified Waterfall Model PrototypingPrototyping Boehm’s Spiral modelBoehm’s Spiral model Object-Oriented AnalysisObject-Oriented Analysis
Waterfall Model
Derived from other engineering processes in the ‘70sDerived from other engineering processes in the ‘70s Offered a means of making the development process more Offered a means of making the development process more
structuredstructured Expresses the interaction between subsequent phasesExpresses the interaction between subsequent phases Each phase cascades into the nextEach phase cascades into the next Original WM : Original WM :
A strict sequence was impliedA strict sequence was implied Did not provide feedbackDid not provide feedback
Modified Waterfall Model
Need to provide for overlap and feedback between phasesNeed to provide for overlap and feedback between phases It is iterative compared to the linear model of the original It is iterative compared to the linear model of the original
WMWM Verification and validation are addedVerification and validation are added
Verification checks that the system is correctVerification checks that the system is correct Validation checks that the system meets the users Validation checks that the system meets the users
desiresdesires
Comments on WM
Inflexible in the partitioning of the project in Inflexible in the partitioning of the project in distinct phasesdistinct phases
Reflect common engineering practicesReflect common engineering practices Emphasis Emphasis
Discerning the users needs and requirements Discerning the users needs and requirements prior to the system being builtprior to the system being built
Agreement bet. User and developer with Agreement bet. User and developer with respect to the requirementsrespect to the requirements
Comments on WM Exclusively document-driven modelsExclusively document-driven models Some factsSome facts
50% of the design effort occurs during the actual 50% of the design effort occurs during the actual design phasedesign phase
1/3 of the design effort done in the coding activity1/3 of the design effort done in the coding activity 16% of the design effort occurs after the system is 16% of the design effort occurs after the system is
supposed to be completedsupposed to be completed People using this type of model are opportunistic. People using this type of model are opportunistic.
There is a need for strictness and signoffs in terms of There is a need for strictness and signoffs in terms of documentationdocumentation
Prototyping
Aims to enhance the accuracy of the designers Aims to enhance the accuracy of the designers perception of the user’s requirementsperception of the user’s requirements
Develop an initial system for user feedback and Develop an initial system for user feedback and then refine by developing a lot of versions until a then refine by developing a lot of versions until a satisfactory system emergessatisfactory system emerges
Rapid development is the key Rapid development is the key
Types
ExploratoryExploratory Start with parts which are understood and Start with parts which are understood and
then evolves as the user proposed new then evolves as the user proposed new featuresfeatures
Throw AwayThrow Away Focus is more on poorly understood Focus is more on poorly understood
conceptsconcepts
Comments
Took 40% less time and 45% less codeTook 40% less time and 45% less code Produced code which is not as robust and more Produced code which is not as robust and more
difficult to maintaindifficult to maintain Less documentation is presentLess documentation is present
Boehm’s Spiral Model
An improved model where all generic An improved model where all generic models have been consideredmodels have been considered
Boehm proposed a spiral model where each Boehm proposed a spiral model where each round of the spiralround of the spiral Identifies the subproblem which has the Identifies the subproblem which has the
highest risk associated with it highest risk associated with it Finds a solution to that problemFinds a solution to that problem
Object Oriented Analysis
ActivitiesActivities Object-oriented analysisObject-oriented analysis Object-oriented designObject-oriented design Object-oriented programmingObject-oriented programming
Main difference between the other models : Main difference between the other models : Modeling of the system components using object-Modeling of the system components using object-oriented concepts and techniques in programming.oriented concepts and techniques in programming.
Planning All software development should be planned, including All software development should be planned, including
analysis and assessmentanalysis and assessment Provides a means for effective management of a Provides a means for effective management of a
software project -- identifies problems and possible software project -- identifies problems and possible solutionssolutions
InvolvesInvolves Delivery dateDelivery date Available StaffAvailable Staff BudgetBudget Staff ExpenseStaff Expense
Estimates
Project StructureProject Structure Project SizeProject Size Functions and their hierarchical Functions and their hierarchical
relationshipsrelationships
Project Plan
Indicates available resources, work Indicates available resources, work breakdown and a schedule for completionbreakdown and a schedule for completion
Documentation
IntroductionIntroduction Describe objectives and constraintsDescribe objectives and constraints
OrganizationOrganization Team organization, team roles, team membersTeam organization, team roles, team members
Risk AnalysisRisk Analysis Describe possible risks and solutionsDescribe possible risks and solutions
Resource requirementsResource requirements Hardware and SoftwareHardware and Software
Documentation
Work Breakdown Work Breakdown Composed of activities, milestones, tasks and Composed of activities, milestones, tasks and
deliverablesdeliverables Milestones : ending point for a SW activityMilestones : ending point for a SW activity Milestones are composed of tasksMilestones are composed of tasks Deliverables : To be given to the customerDeliverables : To be given to the customer
ScheduleSchedule Reporting MechanismsReporting Mechanisms
Management reports required and their due datesManagement reports required and their due dates
Project Scheduling
Difficult and dependent on the experience of the Difficult and dependent on the experience of the project managerproject manager
Initially optimisticInitially optimistic Do not only estimate time, but also resources like Do not only estimate time, but also resources like
people and equipmentpeople and equipment
Cost Estimation
Like Project scheduling, is also dependent Like Project scheduling, is also dependent on the PM’s experienceon the PM’s experience
A lot of cost estimation techniques and a lot A lot of cost estimation techniques and a lot of companies have their own charts in of companies have their own charts in estimating cost and what consists of costsestimating cost and what consists of costs
Types of estimation
Algorithmic Cost modelingAlgorithmic Cost modeling Uses historical cost which relates Uses historical cost which relates
software size to costsoftware size to cost Expert judgementExpert judgement
Experts estimate how much the proj. will Experts estimate how much the proj. will cost and then it is discussedcost and then it is discussed
Estimation by analogyEstimation by analogy Uses other similar projects as basisUses other similar projects as basis
Types of estimation
Parkinson’s LawParkinson’s Law ““Work expands to fill the time available”Work expands to fill the time available” Cost is determined by available resources Cost is determined by available resources
rather than by objective assessmentrather than by objective assessment 12 mo x 5 people = 60 person-months12 mo x 5 people = 60 person-months
Pricing to WinPricing to Win Based on the customer’s budgetBased on the customer’s budget
COCOMO Model
Algorithmic approachAlgorithmic approach Well documented and one of more widely used Well documented and one of more widely used
cost-estimation modelscost-estimation models Based on the model :Based on the model :
Effort = C* PM ^s * MEffort = C* PM ^s * M
C is complexity of the project, PM is some product metric C is complexity of the project, PM is some product metric (usually # of lines); M is a multiplier; and s indicates the (usually # of lines); M is a multiplier; and s indicates the
increasing effort for large proj. (< 1)increasing effort for large proj. (< 1)
The formula
BasicBasic Well understood application developed by Well understood application developed by
small teams.small teams.PM = 2.4(KDSI)^1.05 * MPM = 2.4(KDSI)^1.05 * M
ModerateModerate More complex projects whose team members More complex projects whose team members
have limited experiencehave limited experiencePM = 3.0(KDSI)^1.12*MPM = 3.0(KDSI)^1.12*M
The formula
EmbeddedEmbedded Complex proj. where the software is part of the Complex proj. where the software is part of the
a strongly integrated set of HW, SW, a strongly integrated set of HW, SW, regulations and proceduresregulations and procedures
PM=3.6(KDSi)^1.20*MPM=3.6(KDSi)^1.20*M
Notes
The WHAT phase rather than a HOW phaseThe WHAT phase rather than a HOW phase WHAT are the user’s needs, WHAT is the current WHAT are the user’s needs, WHAT is the current
system, WHAT are the constraints on the current system, WHAT are the constraints on the current and future systemand future system
Both FUNCTIONAL (describing function or Both FUNCTIONAL (describing function or service) and non-functional (time, money, OS service) and non-functional (time, money, OS platform)platform)
Document
Output : Requirement Specification DocumentOutput : Requirement Specification Document Idea : Reflects a mutual understanding between Idea : Reflects a mutual understanding between
client and developer of the work to be completedclient and developer of the work to be completed Provides the basis for Provides the basis for acceptance testingacceptance testing (did we (did we
create the right system?)create the right system?)
Characteristics
UnambiguousUnambiguous CompleteComplete VerifiableVerifiable ConsistentConsistent ModifiableModifiable TraceableTraceable UseableUseable
Stages
Feasibility StudyFeasibility Study Requirements AnalysisRequirements Analysis Requirements DefinitionRequirements Definition Requirements SpecificationRequirements Specification
Feasibility Study
Evaluates the ability to satisfy user needs using Evaluates the ability to satisfy user needs using current software and hardware technologies and current software and hardware technologies and
the constraints of the user’s organization (like the constraints of the user’s organization (like manpower, budgetary constraints)manpower, budgetary constraints)
Requirements Analysis
Provides a statement of the requirements of the Provides a statement of the requirements of the problemproblem
Analyzes the current situationAnalyzes the current situation States the goals of the system being developed States the goals of the system being developed
(cut costs, reduce errors, etc.)(cut costs, reduce errors, etc.) Answers are acquired via interviews, observations,Answers are acquired via interviews, observations, Read by : client managers, end users, client Read by : client managers, end users, client
engineers, contractors, development architectsengineers, contractors, development architects
Q in RA Who is involved and what are their backgroundWho is involved and what are their background What is the current system (equipment constraints)What is the current system (equipment constraints) What functions will be incorporated?What functions will be incorporated? When must the system be completed? (schedule)When must the system be completed? (schedule) What is the impact on personnel, training, etc.What is the impact on personnel, training, etc. Why is the new system being developed?Why is the new system being developed? What are the constraints in terms of cost?What are the constraints in terms of cost?
Requirements Specification
Details what the system will doDetails what the system will do Determines what the operational constriants areDetermines what the operational constriants are
It shouldIt should Completely specify technical requirementsCompletely specify technical requirements Specify constraints and functionsSpecify constraints and functions Specify what should be done in exceptional Specify what should be done in exceptional
casescases Specify performance requirementsSpecify performance requirements
RS Document
ObjectiveObjective Should state all functions to be performedShould state all functions to be performed State all the constraints that affect the systemState all the constraints that affect the system Provide testable criteria for acceptanceProvide testable criteria for acceptance List qualities of the desired systemList qualities of the desired system State default conditionsState default conditions State error conditions and their resolutionsState error conditions and their resolutions States only external system behavior (WHAT States only external system behavior (WHAT
the system does)the system does)
Contents of the paper
Introduction including general goalsIntroduction including general goals Documentation of the current systemDocumentation of the current system
Current physical systemCurrent physical system Current logical systemCurrent logical system Data dictionary of current systemData dictionary of current system File structure for the current systemFile structure for the current system
Contents of the system Documentation of the proposed systemDocumentation of the proposed system
Proposed physical systemProposed physical system Proposed logical systemProposed logical system Functional specifications (services to be provided)Functional specifications (services to be provided) Data dictionary for the proposed systemData dictionary for the proposed system File structure for the proposed systemFile structure for the proposed system Non-functional requirements (constraints)Non-functional requirements (constraints) Feasibility includes estimates of time, money and personnelFeasibility includes estimates of time, money and personnel System evolution assumptions (changes and their System evolution assumptions (changes and their
resolutions)resolutions)