DOC PREVIEW
MSU CSE 870 - LECTURE NOTES

This preview shows page 1-2-3 out of 10 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CSE870, Advanced Software Engineering, Cheng 1 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 1 Advanced Software Engineering!Dr. Cheng!Overview of Software Engineering and Development Processes!CSE870!(Spring 2010)!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 2 Instructor Background!• Professor in CSE!• Areas of interest: SE, formal/informal approaches to SE, automation, dynamically adaptive systems -- all applied to high assurance systems!• Joined MSU in 1990!• Bachelors degree from Northwestern University!• MS, PhD in CS from University of Illinois (UIUC)!• Co-founder of Software Engineering and Network Systems (SENS) Lab!– 6 faculty members!– 25-30 RAs, postdocs !• Also a member of DevoLab!• Research currently funded by NSF, ARO, and industry.!– Recent projects with ONR, AFRL, NASA!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 3 What is Software Engineering?" Systematic approach for developing software! Methods and techniques to develop and maintain quality software to solve problems. !(Software Engineering: Methods and Management, Pfleeger, 1990) ! Study of the principles and methodologies for developing and maintaining software systems. !(``Perspectives on Software Engineering,'' Zelkowitz, 1978)!CSE870, Advanced Software Engineering, Cheng 2 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 4 What is Software Engineering?" Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. !(``Software Engineering,'' Boehm, 1976)! Deals with establishment of sound engineering principles and methods in order to economically obtain software that is reliable and works on real machines. !(``Software Engineering,'' Bauer, 1972)!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 5 Questions addressed by Software Engineering"• How do we ensure the quality of the software that we produce?!• How do we meet growing demand and still maintain budget control?!• How do we avoid disastrous time delays?!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 6 Why apply Software Engineering to Systems?" Provide an understandable process for system development. ! Develop systems and software that are maintainable and easily changed.! Develop robust software and system.! Allow the process of creating computing-based systems to be repeatable and manageable.!CSE870, Advanced Software Engineering, Cheng 3 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 7 Objectives of Course!• Provide exposure to leading-edge topics!– Emphasize object-orientation!– Emphasize reuse!• Provide hands-on experience to reinforce concepts!– Homework assignments!– Modeling and specification assignments!• Synthesize several topics into mini-projects!– Programming Project with written component!– Prepare presentation materials for lay audience.!• Overarching application theme: electronic medical records (EMR)!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 8 Tentative Topics!• Requirements Engineering!• Unified Modeling Language (UML)!• Security!• Architectural Styles!• Design Patterns!• Aspect-Oriented Programming!• Electronic Medical Record Systems!– Personal Medical Record Systems!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 9 Administrative Work!• Background Survey!• Initial Assessment!• Tentative Evaluation Mechanisms:!Exams (2)! 40 %!Homework/Design Exercises!25 %!Mini-Project(s)! 35 %!CSE870, Advanced Software Engineering, Cheng 4 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 10 STOP!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 11 Software Engineering Phases!• Definition: What?!• Development: How?!• Maintenance: Managing change!• Umbrella Activities: Throughout lifecycle!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 12 Definition!• Requirements definition and analysis!– Developer must understand!• Application domain!• Required functionality!• Required performance!• User interface!CSE870, Advanced Software Engineering, Cheng 5 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 13 Definition (cont.)!• Project planning!– Allocate resources!– Estimate costs !– Define work tasks!– Define schedule!• System analysis!– Allocate system resources to!• Hardware!• Software!• Users!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 14 Development!• Software design!– User interface design!– High-level design!• Define modular components!• Define major data structures!– Detailed design!• Define algorithms and procedural detail!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 15 Development (cont.)!• Coding!– Develop code for each module!– Unit testing!• Integration!– Combine modules!– System testing!CSE870, Advanced Software Engineering, Cheng 6 R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 16 Maintenance!• Correction - Fix software defects!• Adaptation - Accommodate changes!– New hardware!– New company policies!• Enhancement - Add functionality!• Prevention - make more maintainable!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 17 Umbrella Activities!• Reviews - assure quality!• Documentation - improve maintainability !• Version control - track changes!• Configuration management - integrity of collection of components!R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering 18 Development Process !!• Step-by-step procedure to develop software!• Typically involves the major phases:!– analysis!– design!–


View Full Document

MSU CSE 870 - LECTURE NOTES

Documents in this Course
HW2

HW2

3 pages

splc1

splc1

21 pages

Lessons

Lessons

3 pages

revision

revision

13 pages

ft1

ft1

12 pages

john.dsn

john.dsn

21 pages

Survey

Survey

2 pages

revision

revision

38 pages

Load more
Download LECTURE NOTES
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view LECTURE NOTES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view LECTURE NOTES 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?