Presentation is loading. Please wait.

Presentation is loading. Please wait.

Designing software applications

Similar presentations


Presentation on theme: "Designing software applications"— Presentation transcript:

1 Designing software applications
Lection 1

2 General information 8 lections 8 labs

3 General information Pavel I. Banokin Office 103a

4 Plan Software design and architecture Software architect role
Software architecture documentation

5 Software design A process of a software artifact specification creation. the activity following requirements specification and before programming

6 Software design UI & UX design Low-level design High-level design
Algorithms design Internal component structure design High-level design Architecture design

7 Architecture Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. [ANSI/IEEE Std , Recommended Practice for Architectural Description of Software-Intensive Systems]

8 Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. [L.Bass, P.Clements, R.Kazman, Software Architecture in Practice (2nd edition), Addison-Wesley 2003]

9 Architecture Defines Structure Splits an application into a set of:
components, modules, objects, other units.

10 Architecture Specifies Component Communication
Synchronous ( /ˈsɪŋkrənəs/) request-reply Asynchronous

11 Architecture Addresses Nonfunctional Requirements
Technical constraints Business constraints Quality attributes

12 Architecture: technical constraints
Certain technologies that the application must use. “We only have Java developers, so we must develop in Java”. “The existing database runs on Windows XP only”. Usually nonnegotiable.

13 Architecture: Business constraints
For business, not technical reasons. Example 1: “In order to widen our potential customer base, we must interface with XYZ tools”. Example 2 “The supplier of our middleware has raised prices prohibitively, so we’re moving to an open source version”. Most of the time, these too are nonnegotiable.

14 Architecture: Quality attributes
Compatibility Extensibility Maintainability Reusability Robustness Usability Security

15 Architecture: Quality attributes
Perfomance Scalability

16 Architecture Subroutines libraries Modules Objects components

17 Software architect Technical leader
Liaison (/liˈeɪz(ə)n/) (translates and explains different terminology between different stakeholders). Risk management: Googd architects should be cautious

18 Software architect Software Engineering: Excellent design skills are what get a software engineer to the position of architect. They are an essential prerequisite for the role. Architects must promote good software engineering practices.

19 Software architects Architect chief architect Solution architect
Enterprize architect

20 chief architect Senior position Responsible for product line
Manages a team of architects within an organization Very experienced Combines deep technical and business knowledge.

21 Product/Technical/Solution Architect
Typically someone who has progressed through the technical ranks and oversees the architectural design for a specific system or application. They have a deep knowledge of how some important piece of software really works.

22 Enterprise Architect Typically a much less technical, more business-focus role. Enterprise architects use various business methods and tools to understand, document, and plan the structure of the major systems in an enterprise

23 Enterprise Architect Enterprise architects create documents, roadmaps, and models that describe the logical organization of business strategies, metrics, business capabilities, business processes, information resources, business systems, and networking infrastructure within the enterprise.

24 Architect Application type Style Technologies

25 Architect: application types
Web application Desktop application Console application Web-service Middleware

26 Marketecture (architecture cartoon)
One page informal depiction of the system’s structure and interactions

27 Home task Review available positions Brief role description
Responsibilities (7+ items) Qualifications (+ Education (5+ items)) Overall Salary

28 Lab 1 topics MVVM – web ( angular backbone js knockout)
MVVM – desktop (wpf or other) Document-oriented storages MongoDB, Reddis Open Data Protocol (OData)  OAuth Yii framework WWF


Download ppt "Designing software applications"

Similar presentations


Ads by Google