CSCI 6231: Software Engineering Instructor: Morris Lancaster.

Slides:



Advertisements
Similar presentations
Developed by Reneta Barneva, SUNY Fredonia
Advertisements

Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Using MIS 2e Chapter 10: Managing Development David Kroenke
Systems Development Environment
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Object-Oriented Analysis and Design
What do Computer Scientists and Engineers do? CS101 Regular Lecture, Week 10.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Chapter 6 Systems Development.
ESD.83Cory R. A. Hallam1 An Introduction to Systems Engineering The Art of Managing Complexity Presented By Cory R. A. Hallam B.Eng., M.Eng., ISU SSP,
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
CSE 230: Introduction to Software Engineering Topics covered: Introduction.
Chapter 1 The Systems Development Environment
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Lesson 1 Week01.
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
What is Software Engineering?. Software engineering Multi-person construction of multi-version software (David Parnas) An engineering discipline whose.
CompSci 230 Software Design and Construction
Chapter 2 The process Process, Methods, and Tools
Describing Methodologies PART II Rapid Application Development*
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Object Oriented Analysis and Design Introduction.
No Silver Bullet. CS460 - Senior Design Project I (AY2004)2 No silver bullet "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Chapter 1 The Big Picture.
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.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Chapter 1. Introduction.
1 Introduction to Software Engineering Lecture 1.
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 11 Managing Application Development. Agenda Application management framework Application management issues Criteria for development approach Development.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
© Chinese University, CSE Dept. Software Engineering / Topic 3: Software Engineering Principles Your Name: _____________________ Computer Science.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Advanced Software Engineering Dr. Cheng
Lecture 0 Software Engineering Course Introduction
Introduction to Software Engineering (2/2)
Software Life Cycle “What happens in the ‘life’ of software”
Complexity Time: 2 Hours.
Design and Implementation
Software Processes.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
PPT1: Basics of software engineering
CSC 480 Software Engineering
Logical Architecture & UML Package Diagrams
Presentation transcript:

CSCI 6231: Software Engineering Instructor: Morris Lancaster

CSCI 6231 Lecture 02 Web Page

CSCI 6231 Lecture 03 Instructor Morris Lancaster –(703) –Office hours by appointment

CSCI 6231 Lecture 04 SWE Courses Domain Specific –Aeronautical/AerospaceAeronautical/Aerospace Level of Detail/Process Oriented –Overview course from a civil/environmental eng. DeptOverview course from a civil/environmental eng. Dept –Elements of Software Construction from a CS departmentElements of Software Construction from a CS department

CSCI 6231 Lecture 05 Openly Available Resources Software Engineering Courses/Course Notes –MIT Open CoursewareMIT Open Courseware –Open Software EngineeringOpen Software Engineering –Free Open Courseware PageFree Open Courseware Page Open Source Tools –At the Development Level AnotherAt the Development LevelAnother –At the Project Management Level AnotherAt the Project Management LevelAnother Professional Societies –Association for Computing Machinery SigSoftAssociation for Computing MachinerySigSoft –IEEEIEEE

CSCI 6231 Lecture 06 Software Engineering “the application of engineering to software” – IEEE Std , Standard Glossary of Software Engineering Terminology (ANSI) “the multi-person construction of multi-version software” - Parnas

CSCI 6231 Lecture 07 Course Approach Present the background body of knowledge found in the text Use a team project to provide some hands on experience for a development effort (the teams will define, estimate, plan, provide management reviews, develop, test, implement and present their projects)

CSCI 6231 Lecture 08 Programming versus Software Engineering Programming – a personal activity Structured programming did not solve our problems Software Engineering – team activity Software Engineers emerged (honest brokers, heroes, and snake oil salesmen)

CSCI 6231 Lecture 09 Role of Software Engineering In overall system design Software is a component of larger systems Software engineers now participate in the design of the whole system (some arrogance among systems engineers still remains, which often times pushes them on to the next project before the roof caves in)

CSCI 6231 Lecture 010 Software Engineering Choices Trade-off Hardware, software, or elbow wear Compromise Good, fast, cheap (pick 2) Performance, schedule, cost

CSCI 6231 Lecture 011 Software Engineering Environment Risk Cost Schedule Performance We hope to address some principles that will withstand the changes in how we develop large software products

CSCI 6231 Lecture 012 Software Engineering History In the beginning was the machine language programmer who addressed well understood problems that had to be solved quickly Computers became cheaper and high level languages emerged - programming became a profession - user and programmer became separate - user wrote specification and programmer implemented - still very few large projects - reuse through subroutines

CSCI 6231 Lecture 013 Software Engineering History 1960’s - MIT (MULTICS Project) link linklink link - IBM OS 360 (Over 1 staff century of labor)OS Fred Brooks – Mythical Man Month linklink - Scaling of development efforts was difficult - folklore - Structured Programming – Harlan Mills - The problems being solved were not well understood (lots of basic research in operating systems conducted) - Basic concepts emerged, reuse through libraries, modularity, pathological coupling (later used in structured design)

CSCI 6231 Lecture 014 Software Engineering History 1970’s - Even cheaper computers micro minimicromini - Range of problems attacked grew - Many failures - Emergence of structured design -- cohesion -- coupling - Team efforts addressed - Still much communication by folklore

CSCI 6231 Lecture 015 Software Engineering History 1980’s - Even cheaper computers and larger number of programming languages - DoD attempts to solve manpower problems by mandating Ada - In the programming genre encapsulation and abstract data types emerged - Serious metrics and whole life cycle methodologies emerged

CSCI 6231 Lecture 016 Software Engineering History 1990’s - Even cheaper computers, industry settles on C/C++, Academia uses C++ and moves toward Java, Ada all but dies - Java language was developed - Industry products developed that incorporated business logic (the reuse concept that began with subroutines, matured with abstract data types and object oriented development, was now applied to whole areas of business) - Whole life cycle methods continued, new development concepts emerge to break the long time frame of the waterfall model – rapid prototyping, agile development - Components emerge from middleware

CSCI 6231 Lecture 017 Engineering -The solution to an engineering construction or design problem can either be visualized, or is the result of a selection from a possible set of alternatives that can be “constructed” directly by piecing together components with known characteristics and capabilities. (We can visualize a house, draw a scale model, pick the appropriate components to meet the underlying requirements at each point, and produce a result.

CSCI 6231 Lecture 018 The Software Life Cycle -Requirements Analysis and Specification (expressed in some form A) -System Design and Specification (expressed in form A and B) -Coding and Testing (results in a program and the necessary artifacts to document the program, expressed in form C) -Integration and system testing (parts are put together and tested, test results communicated in form D) -Delivery and Maintenance (system is operational, with changes to remove defects and meet new requirements) (THE WATERFALL MODEL) How do we connect these representations so that the transitions can be verified?

CSCI 6231 Lecture 019 Relationship of SWE to Other Areas of Computer Science Programming Languages - modularity, encapsulation, reuse Operating Systems - virtual machines, portable OS Databases - most computation is processing information Artificial Intelligence - large, complex, and not fully understood systems were developed Theoretical Models - from 210, remember the logical and algebraic paradigms,

CSCI 6231 Lecture 020 Relationship of SWE to Other Disciplines Management Science As much of an oxymoron as software engineering? Not really, the difficulty is in understanding the degree of precision with which we can work. Systems Engineering Leave the difficult problems for the software?

CSCI 6231 Lecture 021 Chapter 1 Some Key Points of Chapter 1 - Two kinds of challenges in software development, essential and accidental -- accidental problems can be remedied -- essential problems are more of an issue - Complexity is our enemy, it increases risk -- complexity of the problem -- complexity due to size of project