+ All Categories
Home > Documents > Introduction to Software Engineering

Introduction to Software Engineering

Date post: 30-Dec-2015
Category:
Upload: jeremy-mcclain
View: 29 times
Download: 0 times
Share this document with a friend
Description:
Introduction to Software Engineering. Definition and properties. A system is a collection of interrelated components that work together to achieve some objective Properties : Complex interrelationship among the parts Reliability Usability. System & its environment. - PowerPoint PPT Presentation
Popular Tags:
54
Introduction to Software Engineering
Transcript

Introduction toSoftware Engineering

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.

System customer

Principal contracto

r

Subcontractor 1

Subcontractor 1

Subcontractor 1

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

Software Lifecycles

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 and Cost Estimation

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

Requirements Analysis & Specification

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)

Contents of the system

GlossaryGlossary Sign OffSign Off Preliminary user manual (primarily screens)Preliminary user manual (primarily screens)


Recommended