CSCE 240 – Intro to Software Engineering Lecture 2.

Slides:



Advertisements
Similar presentations
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Advertisements

Chapter 2 – Software Processes
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 24.
Chapter 1- Ethics Lecture 2.
Introduction To System Analysis and Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Notion of a Project Notes from OOSE Slides - modified.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
SE 112 Slide 1 SE 112 l
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Chapter 1 Introduction Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 1: Software and Software Engineering
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
What is Software Engineering?. Software engineering Multi-person construction of multi-version software (David Parnas) An engineering discipline whose.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH KKF 8A – room 4.
Ch. 101 Epilogue. Ch. 102 Outline What will be the future of the field? What is the impact of SE on society? What ethical issues are raised by SE?
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Introduction To System Analysis and Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 Professional and ethical responsibility l Software engineering involves wider.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
1 Software Engineering, 8th edition. Chapter 1 Jan 28 th, 2009 Lecture # 1 Courtesy: ©Ian Sommerville 2006 An Introduction to Software Engineering.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Ethics and Computer Science Most of the material for these lectures was taken from an EXCELLENT text on the subject: Ethics for the Information Age Michael.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
IT depends on several codes of ethics 1. PUBLIC - IT engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER - IT engineers shall.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
CSCE 240 – Intro to Software Engineering Lecture 3.
An Introduction to Software Engineering Based on Ian Sommerville’s Software Engineering 8 th Ed. Slides by Denny Lin.
Software Engineering Session 2008/2009 Semester 1 University Malaysia Perlis Lecture 1.
 System Requirement Specification and System Planning.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1: Software and Software Engineering The Nature of Software... Software is intangible  Hard to understand development effort Software.
Advanced Software Engineering Dr. Cheng
INTRODUCTION TO SOFTWARE ENGINEERING
An Introduction to Software Engineering
Fundamentals of Information Systems, Sixth Edition
The Web Application Development Process Models
OOP What is problem? Solution? OOP
Introduction to Software Engineering
Overview of System Engineering
Bill Tomlinson Art and computing Effects of computer-based art on society? (e.g. animation) Effects of participatory experiences on group dynamics.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 1: Software and Software Engineering
Chapter 1: Software and Software Engineering
Presentation transcript:

CSCE 240 – Intro to Software Engineering Lecture 2

Quote of the Day “Relativity applies to physics, not ethics.” -Albert Einstein

Overview Finish Chapter 1 Begin Chapter 2 Discuss Homework 1

Software Engineering code of ethics(IEEE) Software Engineers shall: Act consistently with the public interest Act in the best interests of their client or employer as long as this is consistent with the public interest Develop and maintain their product to the highest standards possible

SE code of ethics(continued) Maintain integrity and independence when making professional judgments. Promote an ethical approach in management. Advance the integrity and reputation of the profession as long as doing so is with the public interest.

SE code of ethics(continued again) Be fair and supportive of colleagues. Participate in lifelong learning

Types of SE Projects Evolutionary projects – modifying an existing system(maintenance/upgrade) Corrective – fix defects (patches). Adaptive – modifying system to account for changes in its environment(moving from win2k to XP). Enhancement – adding new features Re-engineering – fine tuning the internal workings of the system without changing the features.

Types of SE Projects (continued) “Green field projects” – projects build from scratch with no other system to build on or modify(starting fresh). Component/Framework project – build from existing components which are assembled and modified to the needs of the current project(Lego blocks). Very reuse friendly.

SE project activities Requirements and Specification (What) Design (How) Modeling Programming Quality Assurance (Testing) Deployment Management of Design Process Maintenance

Requirements and Specification Domain Analysis – understand background to better understand problem. Define Problem – detail exact problem(s) to solve with system. Requirements Gathering – get all stakeholders ideas about what the system should do.

Requirements and Specification(continued) Requirements Analysis – organize all requirements gathered in an ordered fashion then decide what software should do. Requirements Specification – produce a precise set of requirements for what the software system SHALL do. (no implementation details included).

Design Systems Engineering – hardware vs. software implementation. Software Architecture – how software is organized and how the various parts (subsystems) interact. Detailed Design – detail how to construction of subsystems User Interface Design – detail how user interacts with system. Data Storage – how data is managed/stored by system.

Modeling Use case modeling (Use case diagrams) Structural modeling (Class Diagrams) Dynamic and behavioral modeling (State/Sequence diagrams)

Quality Assurance Reviews and Inspections – frequent evaluation of designs or code to assure customers requirements are being met. Testing – testing software to assure it behaves as intended.

Quality Assurance (continued) Verification – are the requirements being met? Validation – does the software system solve the customers problem?

Management Estimating Cost Planning – managing people involved in project to avoid wasted or duplicated effort.

SE Problems and Risks Complexity – software systems tend to be complex. Poor understanding of the problem, feature creep and gold plating all contribute to this problem. Technology changes rapidly – computers tend to evolve quickly and systems can often be based upon untried technologies.

SE Problems and Risks (continued) Does software actually match customers needs – never sure until software is delivered. Try to understand problem domain as well as possible. Taking on a job not properly qualified or staffed for – SE firms are intended to make money. This desire for profit can lead to over extending of resources.

SE Problems and Risks (continued) Requirements and Technology always change – carefully document changes and try to manage any risks associated with these changes. Politics – any industry involving people will have people not happy with systems, or who have ulterior motives for wanting to see a software project succeed or fail.

Chapter 2 Object Orientation

What is the object oriented paradigm? “It is an approach to the solution of problems in which all computations are performed in the context of objects. The objects are instances of programming constructs, normally called classes, which are data abstractions and which contain procedural abstraction abstractions that operate on objects.”

Procedural vs. OO

Objects + Classes Object – “A chunk of structured data in a running software system” – also – an instance of a class Class – “A unit of data abstraction in an O-O program.” – also – a set of objects with the same behavior and properties.

Classes Contain: Attributes – data stored within class (variables) Methods – procedures which implement behavior in classes.

Object or Class Fruit? Apple? Food? Dog? Cat? Pet? Animal?

Reading for Next time Read Chapter 2

For next time Finish Chapter 2 on objects and classes Very very brief look at some UML If time permits, begin chapter 3 on reuse.