CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
Published byModified over 6 years ago
Presentation on theme: "CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind."— Presentation transcript:
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: email is email@example.com,firstname.lastname@example.org Office: prefab, behind Kane Building Lectures: 25 in total Monday @12:00 PF1 and Thursday @ ? Practicals:Organised later (in PF1 also)
CS565 on-line Webpage for course: http://www.cs.ucc.ie/~adrian/cs565.html This contains: Course overview Lecture slides (as we go along) Reading list On-line resources And will contain: Assignments and exercise sets Notices
Objectives and Prerequisites Objectives: To become familiar with the processes and technologies used in the construction of software systems. The focus will be on object oriented software design and development. The technologies covered will include analysis, design based on UML (Unified Modeling Language), CASE (Computer Assisted Software Engineering) and Java (example language). Prerequisites: Basic knowledge of computing including programming concepts.
Course Details Relates to Project and CS560 Formal Modelling and Implementation of Systems. Teaching methods: notes will on slides or handouts. Reading assignments will be also given during the year. Assignments and exercises will be placed on the course webpage. No textbook covers all the material exactly. See the list of relevant books later on.
Course Overview I Part 1: Object Oriented Programming & Design (14 lectures) Object Oriented Concepts – objects, classes, encapsulation, inheritance, polymorphism, generics (2l) Java Programming – review of fundamentals, new features in Java 5, SWING classes (7l) Static Modeling in UML (Unified Modeling Language) - Class Diagrams, modelling classes, associations, attributes and operations (3l) Model Management in UML - Package notation (2l)
Course Overview II Part 2: Selected Software Engineering Technologies (10 lectures) Development Tools, e.g. IDEs (Integrated Development Environments), CASE (Computer Assisted Software Engineering), SCM (Software Configuration Management) (3l) Software Architecture – Architecture Description, Types of Architectures, Software Frameworks (3l) Software Engineering Process – Analysis, Design, Testing (2l) Java Technology – J2SE; Comparison with C# and C++ (2l) Optional topics covered by handouts Selected Software Engineering Technologies - Client Server; Outsourcing; Software Services & Components, Design Patterns
Practical Component UML and Software Design CASE tool is TogetherArchitect for Eclipse (Borland) – formerly Together from TogetherSoft modeling product that provides an integrated modeling environment for designing processes and software applications, including design and coding built on top of Eclipse – uses plug-ins fully supports UML 2.0 and Java 5 Java programming – using JDK to implement basic Object Oriented System Design and demonstrate Java library and SWING proficiency
Books to Read/Browse Software Engineering: A Practitioner's Approach 6th ed., Roger Pressman, McGraw-Hill, 2004. Software Engineering, 8th edition, Ian Sommerville, Addison-Wesley, 2006. Code Complete: A Practical Handbook of Software Construction, Steve McConnell, Microsoft Press, 1993. Object-Oriented and Classical Software Engineering, Stephen R. Schach, McGraw-Hill, 2004. Java Software Solutions, 3 rd ed., Lewis and Loftus, Addison Wesley, 2003. Objects First with Java, 2 nd ed., Barnes and Koelling, Pearson, 2005. Note there are also many excellent book available on specific topics such as the UML but these are not listed.
Websites - Portals Course Website contains links to useful on-line resources. The following are good jump off points/ portals for general Software Engineering Information. http://directory.google.com/Top/Computers/Software/S oftware_Engineering/http://directory.google.com/Top/Computers/Software/S oftware_Engineering/ Google Directory http://dir.yahoo.com/Computers_and_Internet/Program ming_and_Development/Tools/Software_Engineering /http://dir.yahoo.com/Computers_and_Internet/Program ming_and_Development/Tools/Software_Engineering / Yahoo Directory http://www.dmoz.org/Computers/Software/Software_E ngineering/http://www.dmoz.org/Computers/Software/Software_E ngineering/ Open Directory Project
Software-Engineering in the Large a concise working definition of software engineering: the methodology, techniques and tools related to the development and management of software from conception through requirements, design, implementation, deployment to the final retirement. Large-scale Software Engineering Project involves a team of people – need to manage process, people and artefacts System takes a long-time to build – need to plan Systems Complex – need powerful tools, methods and technologies Need to reuse code/designs/process