Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS487 Software Engineering Omar Aldawud

Similar presentations


Presentation on theme: "CS487 Software Engineering Omar Aldawud"— Presentation transcript:

1 CS487 Software Engineering Omar Aldawud aldaoma@iit.edu

2 CS487 Schedule

3 CS Rice CS

4 CS Internet

5 CS Main

6 CS India

7 CS 487 Course Logistics http://cs.iit.edu/~oaldawud/CS487

8 Today’s Class Software Engineering Activities Software What Is SE?
the Product and its Quality The Process! What Is SE?

9 The Wall Street Journal “Ideas and technological discoveries are the deriving engines of economic growth” Software impact Impact of software maintenance New 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 self Students Grade Average Simple database application In this course you will be given a large and more complex programming assignment To 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” that includes • programs • documents • data ...

13 Software’s Dual Role Software is a product
Produces, manages, acquires, modifies, displays, or transmits information Software is a vehicle for delivering a product Supports or directly provides system functionality Controls 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 out Figure 1.1 vs Fig 1.2 software is complex Software is custom build

16 Compare to the bath-tub curve Fig 1.1
Wear vs. Deterioration Compare to the bath-tub curve Fig 1.1

17 Software Applications
System software (compilers, file management, etc) Application software Engineering/scientific software Embedded software Product-line software Web-Apps AI

18 Software Applications
Ubiquitous computing —wireless networks Netsourcing —the Web as a computing engine Open source —”free” source code open to the computing community (a blessing, but also a potential curse!) Also … (see Chapter 32) Data mining Grid computing Cognitive machines Software 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:
u n i c a t Planning M d e l g s r D p y j q n t g a t h e r i n g estimating scheduling tracking d e l i v e r y s u p p o r t f e e d b a c k Each phase has three 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.

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 works Program must do the task correctly and completely THUS … the first step in the development process is to understand exactly and completely WHAT the program is required to do? Document the outcome  SW requirements Develop programs that meets customer requirements using SW specifications Format of Input and output Processing details Performance Error handling procedures Standards And so on …

24 Quality Software, What Makes It Good?
2. Can be read and understood Document the code 3. Can be modified To accommodate for new requirements 4. 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 process We 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 building Web design vs. telephone switch!!

27 Software Process Process defines who is doing:
– What?, – When and how? – To reach a goal Process defines tasks and activities within a schedule Results – Programs – Documents – And data Software process is a roadmap for high quality software

28 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

29 A Layered Technology Software Engineering tools Methods “how to’s”
Communication Requirements Design Code Testing Deployment support Software Engineering tools Methods “how to’s” process model a “quality” focus

30 A Process Framework Process framework Framework activities
SW Eng Actions #1 work tasks work products milestones & deliverables QA checkpoints Umbrella Activities Design

31 Framework Activities Communication Planning Modeling Construction
Analysis of requirements Design Construction Code generation Testing Deployment

32 Umbrella Activities Software project management
Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management

33 Generic Framework activities
Communication Get to know your Customer and their processes Identify stakeholders Requirement elicitation

34 Generic Framework activities
Planning Plan the work Identify resources Identify tasks Set the schedule

35 Generic Framework activities
Modeling Analysis of requirements Design Blue print for customer and developers communications

36 Generic Framework activities
Construction Code generation Testing

37 Generic Framework activities
Deployment Customer evaluation and feedback

38 CMM There 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 itself An 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 CMMI The 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 capability Level 0 incomplete Level 1 performed Level 2 managed Level 3 defined Level 4 quantitatively managed Level 5 optimized See Fig 2.4 Page 31

41 Process Patterns Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors A template is used to define a pattern Typical 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 Assessment The 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: SCAMPI CBA IPI SPICE ISO 9001:2000

43 Assessment and Improvement

44 Generic View of SE SW Engineering is the: Analysis, Design,
Construction, Verification and. Management of Software.

45 SW Process Models Guides the SW team thought a set of framework activities (process flow) Linear Incremental evolutionary It is a set of activities required to Define, 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 Models All 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


Download ppt "CS487 Software Engineering Omar Aldawud"

Similar presentations


Ads by Google