Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Project Management
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Information Resources Management January 23, 2001.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Life Cycle Model
Chapter 3 Software Processes.
UML - Development Process 1 Software Development Process Using UML (2)
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
CSI315 Web Applications and Technology Overview of Systems Development (342)
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Chapter 1: Introduction to Systems Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Project Life Cycles.
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Smart Home Technologies
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Lecture 10: System Engineering.
Software Design Requirements Design Code-Implementation Test Case Design Builds Testing Rel. Maintenance Reqs. may be from customer or “home invented”
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Chapter 1: Introduction to Systems Analysis and Design
Introduction to Software Engineering
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 1: Introduction to Systems Analysis and Design
Information Systems Development (ISD) Systems Development Life Cycle
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz University of Palestine Faculty of Engineering and Urban planning Software Engineering Department Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz Electronics & Communication Engineer

Two Types of Design Models Static model: Represents the parts, relationships, and attributes that do not change (during execution of the software ) Dynamic model: Represents what happens during the execution of the software.

Software Product Designer & Engineering Designer A software product designer is concerned with: Product features and capabilities. Visually appealing and easy to use user interfaces. Fitting into users’ business processes and operability. Product packaging. ** ( a closer tie to what is specified in the product requirements ) A software engineering designer is concerned with: Individual functionalities and performance. Internal structure of the software system. Individual programs and their interfaces & interactions. The data flow through the software system (including inputs and outputs). System maintenance and evolution. ** (a closer tie to the internal technical design ) (similarities and differences?)

Software Design Team We Need both: Software Product Designer. Software Engineering Designer. Different sets of skills needed: Product Designer: knowledge of: User interface, communicating the requirements/product design, marketing, business processes, applications domain knowledge Engineering Designer: knowledge of: Architecture, programming, database and data structures, development platforms, networking, operating systems.

Software Design Design Requirements Code-Implementation product designer Requirements engineering designer Design Code-Implementation product designer Test Case Design Testing Builds Maintenance (product and engineering redesign)

Software Product Design .vs. Software Engineering Design Product Design Activity: output is a software requirements specification document. Answers mostly “what” the user and customer needs and wants. formulates the problem in an organized way : Functionalities & features Looks and interfaces Constraints Engineering Design Activity: output is a design specification document Answers mostly “how” the software will be put together to respond to the users’ needs and wants. formulates the solution in an organized way. High level software: Components and How they interact. Rationale behind your design decisions ( * my addition ) Low level specifications of programs and data and their behavior organize: relating these

Is There a Design Method? There is no ONE design method in the form of a “recipe” for design. There are several methods that all speak to: Design process: a set of steps that starts with “some inputs” and transform that input to some output and eventually results in a design specification (e.g. structured method, OO-method, etc.). Design notation: a set of symbolic representations and how the symbols are to be used (e.g. UML, etc.). Design “heuristics”: a set of guiding rules (e.g. low coupling and high cohesion)

The Software Lifecycle Systems Engineering Requirements Analysis Software Design Implementation Testing Deployment Evolution The process/activities of developing and evolving software

The Software Lifecycle Software Design Requirements Analysis Implementation Systems Engineering Testing Systems Engineering Identify needs/problems Allocation of roles Hardware Procedures Software Feasibility studies Deployment Evolution

The Software Lifecycle Software Design Requirements Analysis Implementation Systems Engineering Identify needs, problems and allocate roles Testing Deployment Evolution Requirements Analysis Define goals, objectives, features of target software

The Software Lifecycle “Up to 70% of all faults detected in large-scale software projects are introduced in requirements and design. Detecting the causes of those faults early may reduce their resulting costs by a factor of 100 or more.” The Software Lifecycle Software Design Requirements Analysis Implementation Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Software design Creating a blueprint for building the software Architectural design Subsystem design Detailed design Procedural Design User Interface Design Database Design Data Structures Design Test case design Evolution

The Software Lifecycle Software Design Requirements Analysis Implementation Create blueprint Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Evolution Implementation Creating the finished product – the program Coding Writing code for the classes and operations Generate object code Create Test cases Create user manuals

The Software Lifecycle Software Design Create code Requirements Analysis Implementation Create blueprint Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Evolution Testing Determining if the software has errors/fulfils its requirements Test planning Unit testing Subsystem testing Integration testing Regression testing Test case design

The Software Lifecycle Software Design Create code Requirements Analysis Implementation Create blueprint Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Uncovering errors Deployment Making the software available for use Deployment/installation planning Develop documentation Hardware configuration Installation Software distribution Training Evolution

The Software Lifecycle Software Design Create code Requirements Analysis Implementation Create blueprint Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Uncover errors Evolution Managing the software Configuration management Controlling change as software evolves Technical support Software lifecycle activities Evolution Make software available for use

Inputs To Software Design Software requirements specification Describes WHAT system shall do not HOW. External view of system to be developed. Environmental constraints Hardware, language, system usage. Design constraints Design method. Design notation.

Outputs From Software Design Architectural Design Overall description of software structure, Textual and Graphical. Specification of software components and their interfaces. Data Design. Detailed Design of each component Internal logic. Internal data structures. Design decisions made Design rationale. Traces to requirements.

Software Design Process Software life cycle models: Waterfall: limitations of Waterfall Model Incremental: evolutionary prototyping Exploratory: throwaway prototyping Spiral model: risk driven process model

Waterfall Model

Software Life Cycle Model (Definition) Requirements Analysis and Specification Analysis of user's problem. Specification of "what" system shall provide user. Architectural Design Specification of "how" system shall be structured into components. Specification of interfaces between components. Data Design.

Software Life Cycle Model (Construction) Detailed Design Internal design of individual components. Design of logic and data structures. Coding Map component design to code. Unit Testing Test individual components.

Software Life Cycle Model (Integration and Test) Integration Testing Gradually combine components and test combinations. System Testing Test of entire system against software requirements. Acceptance Test Test of entire system by user prior to acceptance.

Software Life Cycle Model (Maintenance) Modification of software system after installation and acceptance Fix software errors. Improve performance. Address changes in user requirements. Often implies significant software redesign

Limitations of Waterfall Model Does not show iteration in software life cycle. Does not show overlap between phases. Software requirements are tested late in life cycle. Operational system available late in life cycle.

Prototyping During Requirements Phase Problem Software requirements are tested late in life cycle. Solution Use throw-away prototyping. Help ensure requirements are understood Also first attempt at designing system Design of key file and data structures Design of user interface Early design tradeoffs

Spiral Process Model (SPM) SPM consists of four main activities that are repeated for each cycle: Defining objectives, alternatives and constraints Analyzing risks Developing and verifying product Spiral planning Number of cycles is project specific Risk driven process Analyze risks in second quadrant

Design Concepts