BSc:SoftwareProject old
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Software Project
- Course name: Software Project
- Course number: XYZ
- Knowledge area: Software Development Fundamentals, Software Engineering
Administrative details
- Faculty: Computer Science and Engineering
- Year of instruction: 2nd year of BS
- Semester of instruction: 2nd semester
- No. of Credits: 4 ECTS
- Total workload on average: 144 hours overall
- Frontal lecture hours: 2 per week
- Frontal tutorial hours: 2 per week
- Lab hours: 2 per week
- Individual lab hours: 0
- Frequency: weekly throughout the semester
- Grading mode: letters: A, B, C, D
Prerequisites
- Discrete Math/Logic
- Introduction to Programming I
- Introduction to Programming II
Course outline
Scientific foundations for Software Engineering depend on the adequate use of methodologies, techniques, tools, and abstractions for developing software. This course explores fundamental techniques for producing, deploying and analysing software systems. It includes three components:
- Software architecture in the strict sense: designing modular structures for reliability, extendibility and reusability. Software architectures address the overall organization of software systems and the techniques that make the development of large systems possible. Not all programming techniques that work on small programs scale-up; this course explores some that do.
- Non-programming, non-design aspects of software engineering, such as lifecycle models, and quality assurance (including testing and other verification methods).
- A strong practical content in the form of collaborative projects that applies the techniques discussed.
Expected learning outcomes
- To be effective software engineers.
- To manage complexity in large software systems.
- To design, implement, verify and maintain efficient systems.
- To work in a development team.
Expected acquired core competences
- Requirements engineering
- Software construction
- Software design
- Software engineering
- Software evolution
- Software verification and validation
- System modeling
Textbook
- Pressman Pressman & Maxim, 8th Edition (7th and 9th are probably acceptable)
Reference material
- Lifecycle Processes - Choose Your Weapon Wisely (Just enough Chapter 1 and 2)
- BuschPat ch2
- Fowler ch 3 (if you need it), 4,7,8,14
- Liu & Yu - From Requirements to Architecture
- Hofmeister et al - General Model for Architecture
- Software Architecture in Practice, Bass et al
- Documenting Architecture Structures - Views and Beyond, Clements et al
- SOLID - Bob Martin
Required computer resources
Student should have laptops with either Microsoft Windows or Linux or MacOS operating systems installed. There are no special configuration requirements for laptops.
Evaluation
- Homework assignments (20%)
- Midterm exam (25%)
- Final exam (25%).
- Project (30% = 10% + 10% + 10%)