© Chinese University, CSE Dept. Software Engineering / 1 - 1 Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.

Slides:



Advertisements
Similar presentations
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Advertisements

LIFE CYCLE MODELS FORMAL TRANSFORMATION
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
What is Software Engineering? And why is it so hard?
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Software Requirements
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
Course Instructor: Aisha Azeem
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
Introduction to High-Level Language Programming
CS 355 – Programming Languages
CSI315 Web Applications and Technology Overview of Systems Development (342)
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Objectives of the Lecture
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1: Overview of Workflow Management Dr. Shiyong Lu Department of Computer Science Wayne State University.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
© Chinese University, CSE Dept. Software Engineering / Topic 3: Software Engineering Principles Your Name: _____________________ Computer Science.
1 Software Development Life cycle (SDLC). Phases of SDLC 2 Requirement Analysis (Defining Requirement) Designing (Design) Coding (Implementation) Software.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Advanced Software Engineering Dr. Cheng
Sub-fields of computer science. Sub-fields of computer science.
Computer System Structures
Programming paradigms
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Software What Is Software?
Hierarchical Architecture
Software Development Life cycle
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 6 – Architectural Design
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Logical Architecture & UML Package Diagrams
Presentation transcript:

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________ Computer Science & Engineering Department The Chinese University of Hong Kong

© Chinese University, CSE Dept. Software Engineering / What Is Software Engineering? Software Engineering: A “multi-person construction of multi-version software.” –A term invented in the late 1960s. –Not just programming. –Dealing with complex systems. –Standard techniques and tools are invented and applied in this field.

© Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 1.Growing software scale and cost –An order of magnitude growth in every 10 years. –Techniques applicable to small systems could not be scaled up. 2.Complexity of applications –The demand for software operations increases at a faster rate than software engineer’s productivity

© Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 3.Impact of software failure –Lack of discipline makes software easy to be misused. –Multiple copies of software make software failures spread fast.

© Chinese University, CSE Dept. Software Engineering / Why Software Engineering? 4.Evolution of software –Software crisis was identified in 1960’s. –Software crisis is still software crisis today. –Code is easy to change, but software is hard to replace. 5.Requirements of software measurement and metrics –Estimate software ______. –Predict and meet software development ______. –Measure and demonstrate software ______.

© Chinese University, CSE Dept. Software Engineering / The Software Life Cycle (The “Waterfall Model”) 1.Requirement Analysis and Specification –After a feasibility study of customer’s demand –Identify and document the exact requirements for the system –Involve customer, developer, and user –“______ the problem is” 2.Design –A software system is developed to meet the requirements –Architectural + detailed design –“______ to solve the problem”

© Chinese University, CSE Dept. Software Engineering / The Software Life Cycle 3.Coding and Module Testing (Unit testing) –To produce the actual code for the customer –Ideas on modules (units) – divide and conquer –Work breakdown structure »Break the system down into __________ –Modules are tested individually”

© Chinese University, CSE Dept. Software Engineering / The Software Life Cycle 4.Integration and System Testing –Modules are integrated and tested as a whole system 5.Delivery and Maintenance –Delivery to user for operation –Corrective, adaptive, perfective maintenance

© Chinese University, CSE Dept. Software Engineering / The Waterfall Model of the Software Life Cycle Requirements analysis and specification Design and specification Coding and module testing Integration and system testing Delivery and maintenance verify Design review Design walkthrough Formal inspection Figure 1.1: The waterfall model of the software life cycle verify Code review Code walkthrough verify Testing results verify Operational environment e.g., NASA model

© Chinese University, CSE Dept. Software Engineering / Typical Software Cost Distribution System TypePhase Costs (%) Requirements/designImplementationTesting Command and control Systems Spaceborne systems Operating systems Scientific systems Business systems4428 ______ Therefore, _________________  ___________________ However, good ______________  good _______________ The cost of s/w development activities

© Chinese University, CSE Dept. Software Engineering / Relative Penalty of Error Correction Figure 1.2: Relative cost vs. phase

© Chinese University, CSE Dept. Software Engineering / Possible Software Development Paths Figure 1.3: Many possible paths to develop software

© Chinese University, CSE Dept. Software Engineering / Well-Engineered Software 1.The software should be maintainable 2.The software should be reliable 3.The software should be efficient 4.The software should offer an appropriate user interface 5.The software should be measurable for trade-off study

© Chinese University, CSE Dept. Software Engineering / Typical Trade-Off Study Cost 1.0 (100%) Efficiency or Reliability “The law of ________________” Figure 1.4: Tradeoff between cost and reliability

© Chinese University, CSE Dept. Software Engineering / Figure 1.5: Software engineering V.S. other engineering

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 1.Programming Languages –structured programs (high-level language) –independent compilation (e.g. C) –separation of specification from implementation (e.g., Ada and Java packages) –System command language (IBM OS 360 JCL vs. UNIX) –Tools (compiler, interpreter, debugger) –Compilation (run-time efficiency) vs. Interpretation (run-time flexibility) –GUI: visual languages for capturing semantics of windowing and interaction paradigms by graphical display devices –Language processing: formalization leads to automation

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 2.Operating Systems –Levels of abstraction (layers) (e.g. OSI 7-layer protocol) –separation of policy from mechanism –A productive OS environment for s/w development e.g. UNIX “tools”  software environment –Mobile computing environment – iOS and Android –Distributed system environment – Web Services, Cloud Computing

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 3.Databases –data independence  interoperability –reuse of existing database system –length of transactions (short vs. long)

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 4.Artificial Intelligence –exploratory development –imperative, applicative, declarative (assignment (recursive & (logic declarations & statement) composite specifications) functions) –expert systems (rules, facts) –natural language user interface

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 5.Theoretical Models –finite state machines (s/w spec & s/w design model) –Petri nets to model s/w –denotational semantics (spec. theorem proving) –temporal logic (high-order theories)

© Chinese University, CSE Dept. Software Engineering / Software Engineering and Other Areas 6.Management Science –s/w project estimation –s/w project scheduling –s/w project resource planning –s/w project tracking 7.Systems Engineering –complex systems –h/w, s/w interactions