csc 480 software engineering
DESCRIPTION
CSC 480 Software Engineering. Lecture 1 August 25, 2009. Topics. Welcome to CSC 480 Course Roadmap Introduction to Software Engineering. Goals. SE activities and processes Object orientation: concepts and principles Team-based projects leading to working applications - PowerPoint PPT PresentationTRANSCRIPT
CSC 480Software Engineering
Lecture 1August 25, 2009
CSC 480 -- Fall 2004 28/18/2004
Topics
Welcome to CSC 480 Course Roadmap Introduction to Software Engineering
CSC 480 -- Fall 2004 38/18/2004
Goals
SE activities and processes Object orientation: concepts and principles Team-based projects leading to working
applications Team activities and role playing Advanced programming/system development
techniques
CSC 480 -- Fall 2004 48/18/2004
Textbook & References
Object-Oriented Software Engineering Bruegge & Dutoit
Prentice Hall, 2004
CSC 480 -- Fall 2004 58/18/2004
Special Features
Put ideas into realityconceptualization specification high-level and detailed design
implementation & testing next iteration, if needed
Valuable teamwork experience Form a team with a common set of goals Choose a role (or roles) that can match your interest and
talent Respect differences and perform as a whole
Synergy: P(n) > n * P(1)
Healthy competition between teams
CSC 480 -- Fall 2004 68/18/2004
Team Lineup – Couch
Martin Zhao, PhD Teaching Programming, SE, DB & OOAD @ Mercer Engaged in s/w development and integration using
Java technologies Other background -- computer aided design and
modeling
Committed to a enjoyable class experience For both you all and me
CSC 480 -- Fall 2004 78/18/2004
We Want to Know You...
Background: Major Courses taken Strength/interest in computing
Programming/system development experience Career goals Expectations for the class Respond to the questionnaire in the handouts folder
CSC 480 -- Fall 2004 88/18/2004
Team Lineup – Players
CHIP VAN TRAVIS JAMES BRAD ADAM
CLINESA NELU ERIC TIM DERON MICHAEL
CSC 480 -- Fall 2004 98/18/2004
Course Roadmap
Lectures – show you how it works the 1st time Processes & team issues Methodologies (e.g., OOAD using UML) Special topics (e.g., client/server, DB connectivity)
Practices – walk you through the 2nd time Workshops Exposure to new technologies Homework
Topics may not be directly covered in workshops
CSC 480 -- Fall 2004 108/18/2004
Course Roadmap (cont’d)
Team projects –you are on your own the 3rd time OOAD - thinking and using objects Plans, logs, and documentation – doing software
engineering Presentations – talking about S/E formally
CSC 480 -- Fall 2004 118/18/2004
Score BreakdownTeam project 450 points
Individual homework 200 points
One hour exams (2 @ 150 points each)
300 points
Quizzes 50 points
CSC 480 -- Fall 2004 128/18/2004
Introduction
What is Software Engineering? What is the difference?
Computer Science vs. Software Engineering Software Engineering vs. other engineering
What activities are involved?
CSC 480 -- Fall 2004 138/18/2004
The Essence of SE
The essence of software engineering is to deliver high-quality software products that can meet clients’ requirements at agreed cost and schedule.
CSC 480 -- Fall 2004 148/18/2004
Software
Software is not just the programs! A software system usually consists of
Requirement documents Design specifications (diagrams, etc) Programs (code, executables and config data) Installation and user manuals
CSC 480 -- Fall 2004 158/18/2004
Software Is Soft
As described in section 1.2 of your text, SE is A modeling activity: methodologies A problem-solving activity: processes and practices A knowledge acquisition activity: intellectual property A rational-driven activity: constantly changing req’ts
We will discussed the first two areas in detail with lectures and workshops. It’s important to have the mental set of dealing with the softness of software as reflected in the latter two areas
CSC 480 -- Fall 2004 168/18/2004
The Four P’s
The four P’s in software development People – in different roles working in a team Product – the working software system and
associated artifacts Process – a set of activities that is performed in a
certain order toward a special purpose Project – a specific instance of building a software
product
CSC 480 -- Fall 2004 178/18/2004
Relationships Among the 4 P’s
Project
Product
Process
PeopleParticipant
Res
ult
Tem
plat
e
Tools
Automation
Project: People performing Processes to produce Product
CSC 480 -- Fall 2004 188/18/2004
A Closer Look at the 4 P’s
Project
Activity
*
Task
*
WorkProduct
is produced by
Resources
consumes
System
Model
Document
Participant
Time
Equipment
Process
*
CSC 480 -- Fall 2004 198/18/2004
Software Lifecycle Activities
Subsystems
Structured By
class...class...class...
SourceCode
Implemented By
Solution Domain Objects
Realized By
SystemDesign
ObjectDesign
Implemen-tation
Testing
Application
Domain Objects
Expressed in Terms Of
Test Cases
?
Verified By
class....?
RequirementsElicitation
Use CaseModel
Analysis
...and their models
CSC 480 -- Fall 2004 208/18/2004
Software Lifecycle Definition
Software lifecycle: Set of activities and their relationships to each other
to support the development of a software system
Typical Lifecycle questions: Which activities should I select for the software
project? What are the dependencies between activities? How should I schedule the activities?
CSC 480 -- Fall 2004 218/18/2004
Other Basic SE Concepts
Functional requirements Nonfunctional requirements Notation Method Methodologies
CSC 480 -- Fall 2004 228/18/2004
Additional Background Info
CSC 480 -- Fall 2004 238/18/2004
Engineering
The profession in which
a knowledge of the mathematical and natural sciences gained by study, experience, and practice
…...
-- Accreditation Board for Engineering and Technology
CSC 480 -- Fall 2009 248/25/2009
Engineering
The profession in which
a knowledge of the mathematical and natural sciences gained by study, experience, and practice
is applied with judgment
to develop ways to utilize, economically, the materials and forces of nature for the benefit of mankind
-- Accreditation Board for Engineering and Technology, 1996
CSC 480 -- Fall 2004 258/18/2004
Software Engineering
A discipline which Applies mathematical and computer sciences Utilizes (mostly) human intelligence, economically, for
the benefit of mankind Based on greatly wise judgment
CSC 480 -- Fall 2004 268/18/2004
Software Engineering Vs. CS
CS is more on the theoretical side Theories, methods, etc Essential knowledge for software engineers
Software Engineering is practical Applying CS theories and methods Hopefully, in a formal (NOT ad hoc) way
Don’t just learn Software Engineering. Do it!
CSC 480 -- Fall 2004 278/18/2004
Software Vs. Other Engineering
Software is soft Mostly human intellectual effort Need for physical resources (e.g. raw materials) is
usually not the first priority Products are intangible and progress may not be visible With applications in virtual all industries, previous
experience may not be easily adopted