CSC230 Software Design (Engineering)

Slides:



Advertisements
Similar presentations
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Advertisements

What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Ch 3 System Development Environment
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Information Systems Analysis and Design
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Chapter 1 4th Edition What is Software Engineering Shari L. Pfleeger
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
Capturing the requirements
Software Engineering General Project Management Software Requirements
What is software engineering?
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
The analysis steps. Problem Analysis Sub-problem 3 Sub-problem 2 Sub-problem nSub-problem 1.
6 Systems Analysis and Design in a Changing World, Fourth Edition.
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
ECNG3023: Introduction to Software Engineering Kevon Andrews Rm. 329 Ph: x3156 Open Hours:
Chapter 6 The Traditional Approach to Requirements
The Software Development Life Cycle: An Overview
Systems Analysis and Design in a Changing World, Fifth Edition
CIS 321—IS Analysis & Design Chapter 1: The World of the Modern Systems Analyst.
Chapter 2 The process Process, Methods, and Tools
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
What is software? Software is a set of items or objects that form a configuration that includes: –Programs –Documents –Data.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 1 What is Software Engineering Shari L. Pfleeger Joanne M. Atlee 4 th Edition.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Chapter 7 System models.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Design Concepts By Deepika Chaudhary.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Systems Analysis and Design in a Changing World, Fourth Edition
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
Chapter 1 Quality terminology Error: human mistake Fault: result of mistake, evidenced in some development or maintenance product Failure: departure from.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CMSC 345 Fall 2000 Software Design and Development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CSE 303 – Software Design and Architecture
Conceptual design Tells the customer what the system will do Tells the customer what the system will do Answers: Answers: Where will the data come from?
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
6 Systems Analysis and Design in a Changing World, Fourth Edition.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Chapter 1 SOFTWARE ENGINEERING What is Software Engineering.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
 System Requirement Specification and System Planning.
Frequently asked questions about software engineering
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
PPT1: Basics of software engineering
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
What is a System? A system is a collection of interrelated components that work together to perform a specific task.
Presentation transcript:

CSC230 Software Design (Engineering) Dr. Ben Choi Ph.D. in EE (Computer Engineering), The Ohio State University System Performance Engineer, Lucent Technologies - Bell Labs Innovations Pilot, FAA certified pilot for airplanes and helicopters TECH Computer Science

CH01: What is Software Engineering Software Engineers build software systems Building a software system requires (1) Planning, (2) Understand what needed to be built, (3) Designing the system, (4) Writing the programs, (5) Testing, and (6) Maintaining the system.

What is CS 230 Class Syllabus

Software Engineers use knowledge of Computer Science to Solve problems ENGINEERING CUSTOMER Theories Tools and Techniques to Solve Problem Problem Computer Functions

Problem Solving: Analysis Subproblem 1 Subproblem 3 Subproblem 2 Subproblem 4

Problem Solving: Synthesis SOLUTION Solution 1 Solution 3 Solution 2 Solution 4

How successful have we been? Writing software is an art as well as a science. Software engineering is about designing high-quality software. System Crash!!! Seeking wrong target!!! However, we have come a long way!!! (Can’t leave home without a computer.)

What is Good software? Context helps to determine the answer Games and Safety-critical systems have different standard Evaluate software by evaluating quality of the product quality of the process quality in the context of the business environment

Quality of the product Correctness Reliability Usability Testability Maintainability

Quality of the Process Many (development) activities will affect the ultimate product quality, e.g. Talking to customers and users to understand what they want Code reviews When to conduct testing

Quality in Context of the Business Environment Return on investment Express in dollars Express in effort schedule productivity customer

Who does software engineering? CUSTOMER Sponsors system development USER Uses system DEVELOPER Builds Contractual obligation $$$, needs Software system Needs

Understanding software systems: A Systems Approach A system is a collection of entities and activities, plus a description of the relationships that tie the entities and activities together. An activity is something that happens in a system. The elements involved in the activities are called entities. Once entities and activities are defined, we match the entities with their activities.

System Boundary: Input and Output Mail room Date validation Calculation Pay information Pay checks Printing

Building software systems: An Engineering Approach Software projects progress in a way similar to the house-building process. Asking customers what house they want to build Drawing floor plans (rooms) ((Model house)) Designing interior (e.g. where the light switch should be) Testing each subsystem (e.g. testing each light switch, electrical subsystem) Testing everything work together Maintaining the house

Software development process requirements analysis and definition system design program design writing the programs (program implementation) unit testing integration testing system testing system delivery maintenance

Members of the development team MAINTENANCE SYSTEM DESIGN REQUIREMENTS ANALYSIS AND DEFINITION PROGRAM IMPLEMENTATION UNIT TESTING INTEGRATION DELIVERY SOFTWARE DEVELOPMENT STEPS DEVELOPER ROLES ANALYST DESIGNER PROGRAMMER TESTER TRAINER

How has software engineering changed? // Time to market Shifts in economics Desktop computing Networking Object technology Problems with waterfall User interfaces CHANGES IN SOFTWARE ENGINEERING

Fundamental notions in software engineering Abstraction Analysis and design methods and notations User interface prototyping Software Architecture Software Process Reuse Measurement Tools and Integrated Environments

Abstraction Electrical device Sensor Water sensor Air sensor is a description of the problem at some level of generalization that allows us to concentrate on the key aspects of the problem without getting mired in the details. Identifying classes of objects that allow us to group items together Forming hierarchies

Analysis and Design Methods and Notations build models and check them for completeness and consistency use standard notation to help us communicate and to document decisions

User interface prototyping Prototyping means building a small version of a system to help the user and customer identify the key requirements of a system demonstrate feasibility of a design or approach Does the user like the “looks and feels”?

Software Architecture A system’s architecture describes the system in terms of a set of architectural units, and a map of how the units relate to one another.

Software Architecture: Units Ways to partition the system into units: modular decomposition: based on assigning functions to modules data-oriented decomposition: based on external data structures event-oriented decomposition: based on events that the system must handle outside-in design: based on user inputs to the system object-oriented design: based on identifying classes of objects and their interrelationships

Software Process Process of developing software (organization and discipline in the activities) contribute to the quality of the software and the speed with which it is developed

Reuse Take advantage of the commonalities across applications by reusing items from previous development Reusable components as business asset

Measurement By quantifying where we can and what we can, we describe our actions and their outcomes in a common mathematical language that allows us to evaluate our progress.

Tools and Integrated Environments Use tools to enhance software development tools to help tracking the progress of the development tools to help debugging programs tools to help testing the programs

Examples and What the chapter means for you Information system example Real-Time example What this chapter means for you What this chapter means for your development team What this chapter means for your researchers Key References and Exercises