Advanced topics in software engineering topics vary but may include software design and evolution, formal methods, requirements specifications, software and system safety, reverse engineering, realtime software, metrics and measurement, programming environments, and verification and validation. Software design cheriton school of computer science. Students from other plans in computer science may elect to enrol in this course. Cs411 software architecture design lecture 08 youtube. Principles of software design course introduction tom horton horton. Dynamic schedule for cs 446 next item in calendar for cs 446 fall quarter 19961997. The book talked about another such pattern, which can be used both for hardwaresoftware systems and for understanding purely software systems. Coupling, cohesion, and information hiding software within subsystems must be organized to minimise the risk and expense of expected change, and to allow individual developers to understand and be responsible for their areas of concern. Cs446 software design and architecture fall 2000 final page 10 of 15 5 20 marks from cs 446 at university of waterloo. However, youll also learn how to work with a group on a large, semesterlong project using a version control system likely git. Design notations cheriton school of computer science.
Cs 446 software architecture and design is a course where you in a group develop an application starting from a pitchproposal, build a prototype, and then take it all the way to a finished product. Cs 305 software models and user interfaces syllabus. Bedir tekinerdogan 20082009 summer this course teaches the basic concepts, methods and. Papers and books for cs 446 and beyond stanford university. Derives from the notion of a finite state automaton. Courses academics computer science northwestern engineering. Software architecture represents the grosslevel structure of software intensive systems and includes the early design decisions that impact the quality of the overall system. You should be familiar with the architectural concepts covered in this class as well as the readings assigned in it. This class is meant to teach you common design patterns for writing large software applications. One person is be the server while the other person is to be the client. Topics will include software architecture, modeling including uml, objectoriented design patterns, and processes for carrying out analysis and design.
For example, the clientserver architecture consists of servers that support services, clients that use services. More advanced or recent developments may be included at the instructors discretion. The course will balance an emphasis on design principles with. Papers and books for cs 446 and beyond fall quarter 19951996 gio wiederhold. Software design for high performance architectures instructor. Computer science capstone projectiisecond course in capstone sequence teamwork, and. Review of patterns factory pattern decorator pattern outline. Used for capturing state transition behavior in cases where there is an intuitive finite collections of states.
This tradeoff represents the optimization aspect of codesign. Most of the applications of the scenariobased design sbd method can be found in the software development, computer engineering, technology product design, and humanmachine interaction domains. Series of lectures on current developments in computer science. Cs485540 software engineering architecture and component design chs. This option will be for students specializing in the development of large software systems. Ask layered architecture qc question h then pick up qcs 1. Software design and architectures state transition diagrams stds. Below, are the learning objectives express the analysis and design of an application using uml. The book talked about another such pattern, which can be used both for hardware software systems and for understanding purely software systems. Software design and architectures this course, and. Information systems analysis and design csc340 software architectures 2 software architectures a software architecture defines the components of a software system and their interdependencies. Software design and architecture is the second course of the three software engineering capstone project courses, offered jointly by the david r. This course is one of three that form the basis for the software engineering option.
This course teaches the principles and concepts involved in the analysis and design of large software systems. The courses are generally known as se1, se2, and se3 because they are listed in several programs and departments. Talk only to your immediate friends reduce interactions between. Cs485540 software engineering architecture and component. Software engineers design, build and evolve software in a broad variety of domains. The learning objectives for the course are the following. Introduces students to the principal activities and stateoftheart techniques involved in developing highquality software systems. This course focuses on techniques for software design in the development of large and complex software systems. Software design and architectures cs446 ece452 cs646. Don norman, the design of everyday things any addition. Surveys and detailed coverage of many user interface software and technology techniques are covered in cs 6456. Bedir tekinerdogan 20082009 summer this course teaches the basic concepts, methods and techniques for designing. Specify functional semantics of an application using ocl.
Cs 746 has a long list of papers suitable for graduate students. Topics include software development process models, software development tools, design and construction principles and practice, software quality assurance and program management. Software design and architecture at university of waterloo. Introduction to problem solving, software engineering, and objectoriented programming. Understand and apply objectoriented design techniques.
Software modeling and architectural design lecture notes on software design lecture 7 software architecture. This course uses a hardware description language hdl to design applicationspecific integrated circuits. The lecture material itself isnt super exciting but it was a good way for me to get reallife programming experience. Information systems analysis and design csc340 xix. Although many focus on specific aspects of the software lifecycle requirements engineering, architecture and design, testing and analysis, etc. Computer science cs series of lectures on current developments in computer science. Bedir tekinerdogan 20082009 summer this course teaches the basic concepts, methods and techniques for. Software design and architecture cs 446, cs 646, ece 452 se2. Access study documents, get answers to your study questions, and connect with real tutors for cs 446. Software integration engineering software development using architecture design, composition, workflow, services, data resources, data. Here is the ece course listing or caesar catalogue. Cs 342 software design project 4 fall 2017 your program is to first allow the user to establish a connection with another person.
Aug 25, 2014 lecture 7 20090615 architecture requirements analysis cs411 software architecture design dr. Spring 19 course descriptions college of information and. Computer science capstone project iisecond course in capstone sequence for computer science majors continuing the development process, technical skills, teamwork, and communication. Software design and architectures cs446 ece452 cs646 se2 lecture 8. Computer science 169 software engineering spring 2015 ucberkeley cs 5150 software engineering, fall 2014 cornell university introduction to service design and engineering university of trento, italy. Software systems are studied at various levels of abstraction from architectures to subsystem decompositions to module and class interfaces and dependencies. Relating to fault tolerance, safety and performance, problems like reduced power supply, unexpectedly open doors, etc. Controlling memory access patterns will drive hardware and software designs for the foreseeable future. Cs446 software design and architecture fall 2000 final.
Score gui the below scale gives the minimum letter grade that you will receive for the attained course percentage. The continuation of cmps 320 includes modern digital design technology, indepth treatment of algorithms and architectures for digital machines and comprehensive treatment of behavioral modeling in advanced digital design. Software architecture and design will provide students with the principles and concepts involved in the analysis and design of large software systems. Software testing, quality assurance, and maintenance. It turns out that there are a variety of architectural design patterns that are appropriate for different situations. Study of modern methods and tools for the development of software products. Cs 548 enterprise software architecture and design syllabus.
An introduction to some of the basic methods and principles used by software engineers, including fundamentals of technical communication, measurement, analysis, and design. Software design and architectures layered architecture. Courses in computer science and engineering paul g. The main focus of instruction is on these design patterns. Course coordinators are listed on the course listing for undergraduate courses and graduate courses. The same program must be used for the server and the client. Some aspects of the software engineering profession, including. Cs411 software architecture design lecture 07 youtube. An experimental seminar on large scale software construction. See current class notices for cs575 software design course description when designing a significant software system, several design decisions about the structural, architectural, and behavioral properties of the system are made and documented.
Talk only to your immediate friends reduce interactions between objects avoid tight coupling between client and subsystem better structured and. Cs 532 software design oak ridge national laboratory. In this course, students will learn to analyze, express, and implement software designs. Lecture 7 20090615 architecture requirements analysis cs411 software architecture design dr.
From games for children to large online learning systems, educational software not only touches on many areas of computer science but depends also on psychology, communication, design, and the fields of study the software is to support. Cs 446 is a course for cs major students and is normally taken in a students 4a term. Apr 18, 2020 computer science 169 software engineering spring 2015 ucberkeley cs 5150 software engineering, fall 2014 cornell university introduction to service design and engineering university of trento, italy. Distributed software development distributed system architectures and design, service oriented computing, and. For example, modern highperformance computers are com. Uml, use cases, patterns, and software architectures, cambridge university press, february 2011. The vocabulary of components and connectors that can be used in instances of that style. Cheriton school of computer science and the department of electrical and computer engineering at the university of waterloo.
Cs 548 enterprise software architecture and design syllabus the syllabus below describes a recent offering of the course, but it may not be completely up to date. Software design and architectures cs446 ece452 cs646 se2. Cs 152 computer architecture and engineering lecture 1 introduction krste asanovic. Introduces students to the design, implementation, and evolution phases of software development. Flow of a typical codesign system generally, hardware software codesign consists of the. Cs 152 computer architecture and engineering lecture 1. An architectural style defines a family of systems in terms of a pattern of structural organization. In the computer science undergraduate program they are designated cs 445, 446, and 447.
Cheriton school of computer science and the department of electrical and computer engineering at the university of waterloo lectures are held tuesday and thursday from 1600 to 1720 in mc 2038. Accounting of dangers in the robots operations and its environment. For current details about this course, please contact the course coordinator. Computer science software engineering, bs bachelor of.
Software design and architecture cs 446, cs 646, ece 452. Fall 20 course descriptions college of information and. Gio wiederhold and david luckham being updated regularil. User interface design central washington university. This tradeoff represents the optimization aspect of co design. Using the philosophy as a base, the computer science department has designed a curricular model that seeks to increase relevance to the real world. Software analysis and design object oriented and structured analysis and design. Aug 25, 2014 lecture 8 20090617 domain analysis 1 cs411 software architecture design dr. Highperformance computer architectures algorithm design, software. Software design and architectures se2 se426 cs446 ece426 fall 2003 assignment 2.