Fundamentals of Software Engineering
Phone: (617) 373-3699
Office: 267 Snell Building
Office Hours: Sat 12-2 pm
COURSE OBJECTIVE:
Develop the skill sets needed to empower you to take a business/engineering problem from an idea to a software solution
Learn the tools and techniques that will enable you to transform a business problem to a managed solution.
In doing so you will learn
- Business modeling and high-level design
- The ins and outs of the Unified Modeling Language
- Principles of the Object-Oriented paradigm
- Business process analysis and design techniques
- How to leverage modeling tools to document business requirements
COURSE OUTLINE
- Introduction to the Software life cycle: project initiation, analysis, design, and development, testing, to deployment.
- Using the software life cycle to estimate project cost
- Understanding the key deliverables of the software life cycle
- Functional vs nonfunctional requirements
- The Object Oriented Paradigm
- Inheritance
- Encapsulation,
- Modularity
- Hierarchical structures
- How to analyze and formalize user requirements usingUML
- Activity models as a way to describe business processes
- Object models: attributes, relationships, and operations
- Use cases and user screens
- Sequence diagrams
- Business Modeling applications
We will use the following application domains to understand the business requirements which are then mapped to business processes, use cases, and formal object models- Managing a university like a business
- Commerce and trade
- Marketing and sales
- The E-voting problem
- Business-to-Business communications and process interactivity
- Issues in managing the customer service process
- Travel and Leisure
- Management reporting as a way of measuring business performance
- How to map the business definition to a high level software architecture
- How to map the high level software architecture to a detailed design
- Develop a quality assurance/testing strategy (if we have time)
THE PROJECT
You will work on a project to analyze and design a software solution to a business problem.
- Work part of a team of three people and divide the work accordingly.
- You will be required to submit progress reports.
The deliverables will include
- A formal presentation describing your solution
- A detailed report outlining your solution. You will be graded on the correctness and completeness of your solution. Completeness here means a software engineer should be able to program your design without your help.
THE GRADING
- An analysis and design project will account for 30% of your grade
- Homework assignments account for about %20
- A final exam will account for the remaining %25 of your grade.
- A final exam will account for the remaining %25 of your grade.
RECOMENDED BOOKS
“UML Distilled” 3rd edition by Martin Fowler
“Writing Effective Use-Cases” by Alistair Cockburn