8 Today’s Class Software Engineering Activities Software What Is SE? the Product and its QualityThe Process!What Is SE?
9 The Wall Street Journal “Ideas and technological discoveries are the deriving engines of economic growth”Software impactImpact of software maintenanceNew Technologies to make it easier, faster, and less expensive to build high-quality programs
10 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering
11 So Far …You have been given detailed specifications of a small programming problem, and you did design, code, test, and deployed by your selfStudents Grade AverageSimple database applicationIn this course you will be given a large and more complex programming assignmentTo complete it you need to put on your Software Engineering hat and work with a team
12 What is Software? Software is a set of items or objects that form a “configuration” thatincludes• programs• documents• data ...
13 Software’s Dual Role Software is a product Produces, manages, acquires, modifies, displays, or transmits informationSoftware is a vehicle for delivering a productSupports or directly provides system functionalityControls other programs (e.g., an operating system)Effects communications (e.g., networking software)Helps build other software (e.g., software tools)
14 What Is Software? Is the Product that SW engineers Design and Build. it encompasses:Instructions “Computer Programs”Documents “Describe Programs”Architecture including Data Structures “Enable Programs”Logical rather than physical
15 Software vs. Hardware software is engineered not manufactured software doesn’t wear outFigure 1.1 vs Fig 1.2software is complexSoftware is custom build
16 Compare to the bath-tub curve Fig 1.1 Wear vs. DeteriorationCompare to the bath-tub curve Fig 1.1
18 Software Applications Ubiquitous computing —wireless networksNetsourcing —the Web as a computing engineOpen source —”free” source code open to the computing community (a blessing, but also a potential curse!)Also … (see Chapter 32)Data miningGrid computingCognitive machinesSoftware for nanotechnologies
19 Legacy Software Why must it change? software must be adapted to meet the needs of new computing environments or technology.software must be enhanced to implement new business requirements.software must be extended to make it interoperable with other more modern systems or databases.software must be re-architected to make it viable within a network environment.
20 Software Engineering IEEE definition. 1.Application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; That is, the application of engineering to software.2.The study of approaches as in (1).
21 SE Activities Each phase has three components: unicatPlanningMdelgsrDpyjqntgatheringestimatingschedulingtrackingdeliverysupportfeedbackEach phase has three components:Set of activities - This is what you doSet of deliverables - This is what you produce.Quality Control Measures - This is what you use to evaluate the deliverables.
22 What Are Good Programs? What makes a text editor a bad application? What makes a C++ compiler a bad compiler?What makes a hospital patient database application bad?
23 Quality Software, What Makes It Good? 1. It worksProgram must do the task correctly and completelyTHUS … the first step in the development process is to understand exactly and completely WHAT the program is required to do?Document the outcome SW requirementsDevelop programs that meets customer requirements using SW specificationsFormat of Input and outputProcessing detailsPerformanceError handling proceduresStandardsAnd so on …
24 Quality Software, What Makes It Good? 2. Can be read and understoodDocument the code3. Can be modifiedTo accommodate for new requirements4. Completed in time and within budget
25 Quality and the Process How can we make sure (measure) that our software is “good”?Measure the quality of the software by measuring the processWe must have a roadmap or process .. A software process
26 What is SW Process?When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result.The ROAD MAP that you follow is the SW process.Process depends on the SW you are buildingWeb design vs. telephone switch!!
27 Software Process Process defines who is doing: – What?,– When and how?– To reach a goalProcess defines tasks and activities within a scheduleResults– Programs– Documents– And dataSoftware process is a roadmap for high quality software
37 Generic Framework activities DeploymentCustomer evaluation and feedback
38 CMMThere must be a commitment to QA. SEI developed a process model to measure Quality“IEEE Capability Maturity Model (CMM)”, CMM is a:“A way to measure the current process maturity of an organization”Maturity is a measure of the goodness of the process itselfAn organization with a more mature process is more likely to develop high quality SW, in a timely, predictable and cost effective way.An organization's process will improve slowly and become more mature
39 The CMMIThe CMMI defines each process area in terms of “specific goals” and the “specific practices” required to achieve these goals.Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective.Specific practices refine a goal into a set of process-related activities.See Project Planning Example page 29
40 The CMMI Process “standards” do exist CMMI is an important one CMMI levels provide an indication of an organizations process capabilityLevel 0 incompleteLevel 1 performedLevel 2 managedLevel 3 definedLevel 4 quantitatively managedLevel 5 optimizedSee Fig 2.4 Page 31
41 Process PatternsProcess patterns define a set of activities, actions, work tasks, work products and/or related behaviorsA template is used to define a patternTypical examples:Customer communication (a process activity)Analysis (an action)Requirements gathering (a process task)Reviewing a work product (a process task)Design model (a work product)
42 Process AssessmentThe process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering.Many different assessment options are available:SCAMPICBA IPISPICEISO 9001:2000
44 Generic View of SE SW Engineering is the: Analysis, Design, Construction,Verification and.Management of Software.
45 SW Process ModelsGuides the SW team thought a set of framework activities (process flow)LinearIncrementalevolutionaryIt is a set of activities required toDefine, design, implement, test and maintain a software product.A SW process model is chosen based on the nature of the project.Each process model prescribes a workflow for SE activities
46 SW Process ModelsAll models have phases and each phase has 3 components:Set of activities, this is what you do.Set of deliverables, this is what you produce.Quality control measures, this is what you use to evaluate the deliverables.The activities defines the process Framework, the generic set encompasses:Communication, planning, modeling, construction, and deployment