Belépés címtáras azonosítással
magyar nyelvű adatlap
angol nyelvű adatlap
Software Engineering
A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftvertechnológia
Last updated: 2016. szeptember 30.
A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.
The objective of the course is to introduce the students to the design, development and maintenance of large-scale software systems. It also presents the techniques and methods to produce the software as a product. In addition to the presentation of the technical aspects, attention is also paid to the administrative overhead of the technologies (management).
Students satisfying the course requirements will be able to understand and manage the problems related to the development of large-scale software systems and they will be able to participate in such development processes. The knowledge acquired in the framework of this course will be the background for the Software Laboratory course.
Software engineering. Historical background. Software crisis. Concept of the technology.
Software as a product. Software quality aspects. Software development process. Life cycle models. Software project planning. Risks, Simple cost models. Scheduling. CMM.
UML notation. UML structural diagrams. (Class and object diagrams, name compartment, attributes, operations, concurrency semantics, template, associations, interface)
UML Component and deployment diagrams. Port, connector, composite structure diagram. Product, node, device. Use case and actor, properties.
UML. Behavioural modelling. iNTERACTIONS, EVENT, MESSAGES. Sequence, collaboration, activity diagrams. Timing diagram. Example of MVC.
UML state modelling. Composite states, activity diagram. Beyond UML.
Verification and validation. Overviews, their goal, methods and actors. Goal and process of testing. Testing within the lifecycle. Testing and integration. FURPS. Requirements (functional and non-functional).
Data modelling. ERD, data specification, XML, DTD. Other specification techniques> syntax graph, BNF. Algebraic axioms.
Modelling behaviour. State machines. Combining models. Specifications, user manuals. Basics of design> abstraction encapsulation, data hiding, modularization. Coupling and cohesion. OO design basics: design by contract, inheritance, law of Demeter.
Software architectures. Concepts and styles. Pipes and filters, blackboard, interpreter, OO, layered, client-server.
Overview on the Rational Unified Process. Component software, academic concepts: Aspect oriented programming. Verification and validation. applied techniques. Testing. Configuration management. Extreme programming, scrum, agile.
Software maintenance, configuration management. Versioning (SVN, GIT).
During midterm home work is to be presented.
During exam period written exam.
Course slides