SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA
SWE © Solomon Seifu SWE - Agenda Administrative Issues Course Goal Course Objectives Lessons Lesson 1 Introduction to Software Engineering & Best Practices Project
SWE © Solomon Seifu SWE - Agenda (Cont.) Lesson 2 Projects & Tools Modeling Tools Versioning Tools JUnit Lesson 2-1 Rapid Prototyping, GUI Design & Stubs Lesson 3 Fundamentals of OO & UML Lesson 3-1 Class Diagram Lesson 3-2 Sequence, Interaction Overview, Communication, Interaction, State, Package, Deployment, Timing Diagrams
SWE © Solomon Seifu SWE - Agenda (Cont.) Inception Lesson 4 - Requirement Analysis Elaboration Lesson 5 – Use Case Modeling Lesson 6 – Architecture Analysis Lesson 7 – Use Case Analysis Lesson 8 – Project Management, Planning & Software Lifecycle Models Lesson 9 – Architecture Design Lesson 10 – Use Case Design Lesson 11 – Subsystem Design
SWE © Solomon Seifu SWE - Agenda (Cont.) Elaboration Lesson 12 – Class Design Lesson 12-1 – Reusability & Portability Lesson 12-2 – Design Patterns Lesson 12-3 – Cohesion Lesson 12-4 – Coupling Lesson 12-5 – Good OO Design
SWE © Solomon Seifu SWE - Agenda (Cont.) Construction Lesson 13 – Implementation Lesson 13-1 – Exception, Logging & Assertion Lesson 13-2 – Testing Transition Lesson 14 – Maintenance & Refactoring
SWE © Solomon Seifu Administrative Issues
SWE © Solomon Seifu SWE - First Thing First All students need to be in class by 10:00am Professional etiquette, attitude and behavior in the class will be given consideration We’ll have meditation everyday, starting at 12:20 & ending at 12:30 before we’re dismissed. Everyone is expected to be silent during meditation
SWE © Solomon Seifu SWE - Professional Etiquette Policy Since you are in here on a Masters degree and a Professional program, the Computer Science department requires higher standards of dress than the rest of the University Men should be clean shaven (beard is OK, but if no beard then clean shaven), dress pants and a shirt with a sleeves and a collar Jeans are not acceptable for class!
SWE © Solomon Seifu SWE - Professional Etiquette Policy (Cont.) Ladies may wear dress pants with a nice top, or skirt or a dress, but again, no jeans! YOU MAY BE ASKED TO LEAVE CLASS IF YOU ARE NOT APPROPRIATELY DRESSED ACCORDING TO THESE STANDARDS
SWE © Solomon Seifu SWE - Professional Etiquette Policy (Grading) Proper etiquette is essential to our personal and professional success, and the college years are an ideal time to cultivate these values To give attention and importance to this, several fundamental values of etiquette are built into the grading system in every course
SWE © Solomon Seifu Course Goals & Objectives
SWE © Solomon Seifu SWE - Goals Understand the principles and best practices of software “engineering” Learn to plan and execute an entire software engineering project from inception to delivery and maintenance, including analysis, design, implementation and testing
SWE © Solomon Seifu SWE - Objectives Know the principles of object-oriented software development and gain hands-on experience with industry standard analysis and design tools and techniques, such as the Unified Modeling Language (UML) and Unified Software Development Process using use case driven, incremental, iterative, architecture-centric approach
SWE © Solomon Seifu SWE - Objectives (Cont.) Compare the Unified Process with emerging eXtreme Programming, Agile & other development processes Know the basic organization of a modern integrated development environment (IDE) such as Eclipse, including a versioning tool
SWE © Solomon Seifu SWE - Objectives (Cont.) Apply modern software architecture such as the 3-tier architecture in software development Use technologies such as Java Swing for the interface development and Java Database Connectivity (JDBC) for the bridge to the database layer such as MS Access
SWE © Solomon Seifu SWE - Objectives (Cont.) Skillfully assign responsibilities to software objects, which is a critical ability in OO development Design and implement a software system which is reusable, modular, cohesive and loosely coupled Use architecture and design patterns to solve common software engineering problems
SWE © Solomon Seifu SWE - Objectives (Cont.) Foster mutual support, individual accountability and a can-do attitude among one’s teammates to accomplish a given objective
SWE © Solomon Seifu Course Text, Materials & Resources
SWE © Solomon Seifu SWE - Course Website
SWE © Solomon Seifu SWE - Text & Materials UML Distilled, Third Edition: A Brief Guide to the Standard Object Modeling Language by Martin Fowler, (2003) Addison-Wesley Pub Co; ISBN: Rational Unified Process. Copyright 1987 – 2003 Rational Software Corp
SWE © Solomon Seifu SWE - Resources SWE Template Documents (CVS Documents) Architecture Analysis Architecture Design Class Responsibility Collaboration (CRC) Glossary Iteration Plan Software Architecture
SWE © Solomon Seifu SWE - Resources (Cont.) Subsystem Design Supplementary Specification Test Plan Use Case Analysis Use Case Design Use Case Model Use Case Specification Vision
SWE © Solomon Seifu 2010 SWE - Resources (Cont.)