{"action":"created","comment":{"url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/comments/165303996","pull_request_review_id":93203567,"id":165303996,"diff_hunk":"@@ -0,0 +1,79 @@\n+{\r\n+    \"title\": \"How to determine the system architecture?\",\r\n+    \"date\": \"2018-02-01\"\r\n+}\r\n+\r\n+# SYSTEM ARCHITECTURE\r\n+\r\n+\r\n+## What's an architecture?\r\n+\r\n+A system can be considered as a group of subsystems with their own functionalities and goals.\r\n+The architecture is both the general structure distribution of sub-modules on board, and the definition of their relations.\r\n+\r\n+We previously presented our 5 modules ADCS, TCS, OBC, EDT and EPS. Our architecture has to create subsystems in terms of hardware, communication and energy, while respecting spatial requirements and being the most failure-tolerant.\r\n+\r\n+----------\r\n+\r\n+## How to find the best architecture? (methodology)\r\n+For a long and ambitious project like ECE3SAT, we wished to follow embedded system methodology.\r\n+We applied the process found in the book *Embedded Systems Architectures* described in the following article.\r\n+\r\n+#### 1. Having a solid technical base\r\n+Our project covers various technical realms. The first aspect is to gather knowledge in order to understand most requirements.\r\n+\r\n+#### 2. Understanding the architecture business cycle\r\n+First of all, we had to gather all requirements from each module. The previous phase focused on it and used formalism to describe it in their reports. However, some requirements had to be updated, that's why dialog with other modules (our final clients) was crucial.\r\n+\r\n+We kept in mind that any information has to be saved (even if it’s written on a napkin). Indeed, we have to be able to make our choices understandable by future working teams.\r\n+\r\n+#### 3. Deﬁning the architectural patterns and reference models\r\n+A state of the art and a study of existing cubesat allows our team to quickly identify important modules: EPS, ADCS, OBC, and TCS.\r\n+\r\n+#### 4. Creating the architectural structures\r\n+>This is done by decomposing the entire embedded system into hardware and/or software elements, and then further decomposing the elements that need breaking down. These decompositions are represented as some combination of various types of structures [...]. The patterns [...] that most satisfy the system requirements (the most complete, the most accurate, the most buildable, highest conceptual integrity, etc.) should be used as the foundations for the architectural structures.\r\n+It is ultimately left up to the architects of the system to decide which structures to select and how many to implement.\r\n+\r\n+#### 5. Documenting the architecture\r\n+\r\n+1. **A document outlining the entire architecture** - \r\n+This step involves creating a table of contents that outlines the information and documentation available for the architecture, such as:\r\n+- an overview of the embedded system\r\n+- the actual requirements supported by the architecture\r\n+- the definitions of the various structures\r\n+- the inter-relationships between the structures outlining the documentation representing the various structures\r\n+- how these documents are laid out (i.e., modelling techniques, notation, semantics, etc.), and so on.\r\n+\r\n+2. **A document for each structure**\r\n+\r\n+>This document should indicate which requirements are being supported by the structure and how these requirements are being supported by the design, as well as any relative constraints, issues, or open items.\r\n+This document should also contain graphical and non-graphical (i.e., tabular, text, etc.) representations of each of the various elements within the structure. For instance, a graphical representation of the structural elements and relationships would include an index containing a textual summary of the various elements, their behavior, their interfaces, and their relationships to other structural elements.\r\n+\r\n+This document should be easily adaptable in specification formalism like UML (*Unified Modelling Language*).\r\n+\r\n+\r\n+#### 6. Analyzing and evaluating the architecture\r\n+\r\n+>While there are many purposes for reviewing an architecture, primarily it is to determine if an architecture meets the requirements, and to evaluate the potential risks, and possible failure, of a design long before it has been built. When evaluating an architecture, both the person reviewing it and the process of the evaluation must be established.\r\n+\r\n+To compare and choose the best architecture between all proposals, we used grades to note each one in function of their behavior in multiple scenarios. It is called *qualitative-analysis approach*.\r\n+\r\n+Then we take into account the reviews from each module’s team. Indeed, they had to read and verify the documented architecture produced to ensure it matches the set of their own requirements. If one need is not answered, the architecture has to be redesigned by integrating the correction and follow the same process: it is a small V-Model.\r\n+\r\n+\r\n+#### summary:\r\n+This representation sums up all the steps from the creation to the maintenance of an architecture:\r\n+{{<\r\n+    image_pop_up_legend\r\n+    \"/images/Blog/lifecycle.png\"\r\n+    \"Figure 1: Embedded Systems Design and Development Lifecycle Model\"\r\n+    \"Figure 1: Embedded Systems Design and Development Lifecycle Model\"\r\n+>}}\r\n+\r\n+\r\n+----------\r\n+\r\n+\r\n+### SOURCES\r","path":"content/Blog/2018-02-01-design-the-best-architecture-ever.md","position":77,"original_position":77,"commit_id":"fbd9543bbdb7a37a7b4e2443c25dd223cc96fdab","original_commit_id":"fbd9543bbdb7a37a7b4e2443c25dd223cc96fdab","user":{"login":"AodhAnd","id":5507583,"avatar_url":"https://avatars2.githubusercontent.com/u/5507583?v=4","gravatar_id":"","url":"https://api.github.com/users/AodhAnd","html_url":"https://github.com/AodhAnd","followers_url":"https://api.github.com/users/AodhAnd/followers","following_url":"https://api.github.com/users/AodhAnd/following{/other_user}","gists_url":"https://api.github.com/users/AodhAnd/gists{/gist_id}","starred_url":"https://api.github.com/users/AodhAnd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AodhAnd/subscriptions","organizations_url":"https://api.github.com/users/AodhAnd/orgs","repos_url":"https://api.github.com/users/AodhAnd/repos","events_url":"https://api.github.com/users/AodhAnd/events{/privacy}","received_events_url":"https://api.github.com/users/AodhAnd/received_events","type":"User","site_admin":false},"body":"No need for all caps here ?..","created_at":"2018-02-01T09:53:10Z","updated_at":"2018-02-01T09:57:23Z","html_url":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4#discussion_r165303996","pull_request_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/comments/165303996"},"html":{"href":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4#discussion_r165303996"},"pull_request":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4"}}},"pull_request":{"url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4","id":166319057,"html_url":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4","diff_url":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4.diff","patch_url":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4.patch","issue_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/4","number":4,"state":"open","locked":false,"title":"Added architecture design methodology article in blog section","user":{"login":"quelqun007","id":11488284,"avatar_url":"https://avatars0.githubusercontent.com/u/11488284?v=4","gravatar_id":"","url":"https://api.github.com/users/quelqun007","html_url":"https://github.com/quelqun007","followers_url":"https://api.github.com/users/quelqun007/followers","following_url":"https://api.github.com/users/quelqun007/following{/other_user}","gists_url":"https://api.github.com/users/quelqun007/gists{/gist_id}","starred_url":"https://api.github.com/users/quelqun007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quelqun007/subscriptions","organizations_url":"https://api.github.com/users/quelqun007/orgs","repos_url":"https://api.github.com/users/quelqun007/repos","events_url":"https://api.github.com/users/quelqun007/events{/privacy}","received_events_url":"https://api.github.com/users/quelqun007/received_events","type":"User","site_admin":false},"body":"I pushed an article online, but i'm not sure for the header : should we add *alias* ?","created_at":"2018-01-31T17:01:22Z","updated_at":"2018-02-01T09:57:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"be010f8ed6f30ab1afcf88faa2f21cfe9897e144","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4/commits","review_comments_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4/comments","review_comment_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/4/comments","statuses_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/statuses/fbd9543bbdb7a37a7b4e2443c25dd223cc96fdab","head":{"label":"quelqun007:dev","ref":"dev","sha":"fbd9543bbdb7a37a7b4e2443c25dd223cc96fdab","user":{"login":"quelqun007","id":11488284,"avatar_url":"https://avatars0.githubusercontent.com/u/11488284?v=4","gravatar_id":"","url":"https://api.github.com/users/quelqun007","html_url":"https://github.com/quelqun007","followers_url":"https://api.github.com/users/quelqun007/followers","following_url":"https://api.github.com/users/quelqun007/following{/other_user}","gists_url":"https://api.github.com/users/quelqun007/gists{/gist_id}","starred_url":"https://api.github.com/users/quelqun007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quelqun007/subscriptions","organizations_url":"https://api.github.com/users/quelqun007/orgs","repos_url":"https://api.github.com/users/quelqun007/repos","events_url":"https://api.github.com/users/quelqun007/events{/privacy}","received_events_url":"https://api.github.com/users/quelqun007/received_events","type":"User","site_admin":false},"repo":{"id":119714085,"name":"ece3sat.github.io-1","full_name":"quelqun007/ece3sat.github.io-1","owner":{"login":"quelqun007","id":11488284,"avatar_url":"https://avatars0.githubusercontent.com/u/11488284?v=4","gravatar_id":"","url":"https://api.github.com/users/quelqun007","html_url":"https://github.com/quelqun007","followers_url":"https://api.github.com/users/quelqun007/followers","following_url":"https://api.github.com/users/quelqun007/following{/other_user}","gists_url":"https://api.github.com/users/quelqun007/gists{/gist_id}","starred_url":"https://api.github.com/users/quelqun007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quelqun007/subscriptions","organizations_url":"https://api.github.com/users/quelqun007/orgs","repos_url":"https://api.github.com/users/quelqun007/repos","events_url":"https://api.github.com/users/quelqun007/events{/privacy}","received_events_url":"https://api.github.com/users/quelqun007/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/quelqun007/ece3sat.github.io-1","description":"ECE³SAT's static website","fork":true,"url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1","forks_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/forks","keys_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/teams","hooks_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/hooks","issue_events_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/issues/events{/number}","events_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/events","assignees_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/assignees{/user}","branches_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/branches{/branch}","tags_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/tags","blobs_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/statuses/{sha}","languages_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/languages","stargazers_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/stargazers","contributors_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/contributors","subscribers_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/subscribers","subscription_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/subscription","commits_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/contents/{+path}","compare_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/merges","archive_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/downloads","issues_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/issues{/number}","pulls_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/pulls{/number}","milestones_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/milestones{/number}","notifications_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/labels{/name}","releases_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/releases{/id}","deployments_url":"https://api.github.com/repos/quelqun007/ece3sat.github.io-1/deployments","created_at":"2018-01-31T16:38:01Z","updated_at":"2018-01-31T16:38:08Z","pushed_at":"2018-02-01T09:20:48Z","git_url":"git://github.com/quelqun007/ece3sat.github.io-1.git","ssh_url":"git@github.com:quelqun007/ece3sat.github.io-1.git","clone_url":"https://github.com/quelqun007/ece3sat.github.io-1.git","svn_url":"https://github.com/quelqun007/ece3sat.github.io-1","homepage":"http://www.ece3sat.com","size":50974,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"ECE3SAT:dev","ref":"dev","sha":"e0b3f4ecdb869ea18de39a7477ecc8a0a7330cd9","user":{"login":"ECE3SAT","id":26322613,"avatar_url":"https://avatars3.githubusercontent.com/u/26322613?v=4","gravatar_id":"","url":"https://api.github.com/users/ECE3SAT","html_url":"https://github.com/ECE3SAT","followers_url":"https://api.github.com/users/ECE3SAT/followers","following_url":"https://api.github.com/users/ECE3SAT/following{/other_user}","gists_url":"https://api.github.com/users/ECE3SAT/gists{/gist_id}","starred_url":"https://api.github.com/users/ECE3SAT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ECE3SAT/subscriptions","organizations_url":"https://api.github.com/users/ECE3SAT/orgs","repos_url":"https://api.github.com/users/ECE3SAT/repos","events_url":"https://api.github.com/users/ECE3SAT/events{/privacy}","received_events_url":"https://api.github.com/users/ECE3SAT/received_events","type":"Organization","site_admin":false},"repo":{"id":117534239,"name":"ece3sat.github.io","full_name":"ECE3SAT/ece3sat.github.io","owner":{"login":"ECE3SAT","id":26322613,"avatar_url":"https://avatars3.githubusercontent.com/u/26322613?v=4","gravatar_id":"","url":"https://api.github.com/users/ECE3SAT","html_url":"https://github.com/ECE3SAT","followers_url":"https://api.github.com/users/ECE3SAT/followers","following_url":"https://api.github.com/users/ECE3SAT/following{/other_user}","gists_url":"https://api.github.com/users/ECE3SAT/gists{/gist_id}","starred_url":"https://api.github.com/users/ECE3SAT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ECE3SAT/subscriptions","organizations_url":"https://api.github.com/users/ECE3SAT/orgs","repos_url":"https://api.github.com/users/ECE3SAT/repos","events_url":"https://api.github.com/users/ECE3SAT/events{/privacy}","received_events_url":"https://api.github.com/users/ECE3SAT/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ECE3SAT/ece3sat.github.io","description":"ECE³SAT's static website","fork":false,"url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io","forks_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/forks","keys_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/teams","hooks_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/hooks","issue_events_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/events","assignees_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/tags","blobs_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/languages","stargazers_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/stargazers","contributors_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/contributors","subscribers_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/subscribers","subscription_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/subscription","commits_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/merges","archive_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/downloads","issues_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/deployments","created_at":"2018-01-15T10:58:46Z","updated_at":"2018-01-15T13:40:12Z","pushed_at":"2018-02-01T09:20:49Z","git_url":"git://github.com/ECE3SAT/ece3sat.github.io.git","ssh_url":"git@github.com:ECE3SAT/ece3sat.github.io.git","clone_url":"https://github.com/ECE3SAT/ece3sat.github.io.git","svn_url":"https://github.com/ECE3SAT/ece3sat.github.io","homepage":"http://www.ece3sat.com","size":50838,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":4,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":1,"open_issues":4,"watchers":0,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4"},"html":{"href":"https://github.com/ECE3SAT/ece3sat.github.io/pull/4"},"issue":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/4"},"comments":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/ECE3SAT/ece3sat.github.io/statuses/fbd9543bbdb7a37a7b4e2443c25dd223cc96fdab"}},"author_association":"NONE"}}
{"actor":{"display_login":"AodhAnd"}}